From 4b74ae71c84d7c3a2fcc83d1ef75f11f8f8c05e0 Mon Sep 17 00:00:00 2001 From: qingyiay <2386314947@qq.com> Date: 星期二, 30 五月 2023 10:28:28 +0800 Subject: [PATCH] 增加新功能,修复bug --- pages/customer-page/customer-my/faYunstatistics/faYunstatistics.vue | 499 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 313 insertions(+), 186 deletions(-) diff --git a/pages/customer-page/customer-my/faYunstatistics/faYunstatistics.vue b/pages/customer-page/customer-my/faYunstatistics/faYunstatistics.vue index 66b528c..0285a75 100644 --- a/pages/customer-page/customer-my/faYunstatistics/faYunstatistics.vue +++ b/pages/customer-page/customer-my/faYunstatistics/faYunstatistics.vue @@ -26,44 +26,56 @@ </view> <view class="filter-condition"></view> <view class="date-information"> + <u-empty mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" textSize="30" iconSize="1000" v-if="filterList.length == 0"></u-empty> <view class="statistics-card" v-for="(item, index) in filterList" :key="index"> <view class="card-top"> <view class="left"><combined-title :title="item.condition"></combined-title></view> <view class="card-top_num"> {{ item.taskCoalList.length }}杞{ - item.taskCoalList.reduce((prev, cur) => { - return prev + cur.clean; - }, 0) + item.taskCoalList + .reduce((prev, cur) => { + return prev + cur.clean; + }, 0) + .toFixed(2) }}鍚� </view> </view> <view class="card-main" v-for="(value, i) in item.taskCoalList" :key="i" @click="faYunDetail(value.id)"> <view class="first-line"> - <view class="dispatch-receive"> - <view v-if="value.orderType == '澶栭攢' || value.orderType == '鍐呴攢' || value.orderType == '杞嚭'" class="container"> - <view class="dispatch">{{ value.deptName }}</view> - <view class="receive-icon"></view> - <view class="receive">{{ value.customerName }}</view> - </view> - <view v-else-if="value.orderType == '澶栬喘' || value.orderType == '鍐呰喘' || value.orderType == '杞叆'" class="container"> - <view class="dispatch">{{ value.customerName }}</view> - <view class="receive-icon"></view> - <view class="receive">{{ value.deptName }}</view> + <view class="main-information"> + <view class="sign">瑁�</view> + <view class="filedname"> + <text v-if="value.orderType == '澶栭攢' || value.orderType == '鍐呴攢' || value.orderType == '杞嚭'">{{ value.deptName || '' }}</text> + <text v-else-if="value.orderType == '澶栬喘' || value.orderType == '鍐呰喘' || value.orderType == '杞叆'">{{ value.customerName || '' }}</text> </view> </view> + <view class="main-divider"></view> <view class="point-number">{{ value.clean.toFixed(2) || 0 }}</view> </view> + <view class="first-extra"> + <view class="main-information"> + <view class="sign">鍗�</view> + <view class="filedname"> + <text v-if="value.orderType == '澶栭攢' || value.orderType == '鍐呴攢' || value.orderType == '杞嚭'">{{ value.customerName || '' }}</text> + <text v-else-if="value.orderType == '澶栬喘' || value.orderType == '鍐呰喘' || value.orderType == '杞叆'">{{ value.deptName || '' }}</text> + </view> + </view> + </view> <view class="second-line"> - <view class="coal-name">{{ value.coalName }}</view> - <view class="black-block"></view> - <view class="coal-type">{{ value.orderType }}</view> + <view class="coal-name"> + <view class="">{{ value.coalName }}</view> + <view class="black-bar"></view> + <view class="coal-type" v-if="value.orderType">{{ value.orderType }}</view> + </view> + <!-- <view class="black-block"><view class="black-bar"></view></view> + <view class="coal-type">{{ value.orderType }}</view> --> </view> <view class="third-line"> <view class="carnum-icon"><image src="https://mx.jzeg.cn:9095/appimg/image/banner/carNO.png" mode="widthFix"></image></view> <view class="carnum-text">{{ value.carNo || '' }}</view> </view> <view class="fourth-line"> - <view class="time-icon"><u-icon name="clock" color="#515151" size="40"></u-icon></view> + <view class="time-icon"><u-icon name="clock" color="#515151" size="28"></u-icon></view> <view class="send-date">{{ value.sendDate }}</view> </view> </view> @@ -71,110 +83,116 @@ </view> </view> <u-popup :show="conditinonShow" mode="bottom" :closeable="true" :closeOnClickOverlay="true" @close="conditinonclose"> - <view class="filter-main"> - <view class="filter-body date-button"> - <view class="condition-name">鏃ユ湡</view> - <view class="filter-name"> - <u-button :text="dateselect" @click="opencalendar"></u-button> - <view class="filter-button "> - <uni-calendar - ref="calendar" - class="uni-calendar--hook" - :clear-date="true" - :date="info.date" - :insert="info.insert" - :lunar="info.lunar" - :startDate="info.startDate" - :endDate="info.endDate" - :range="info.range" - @confirm="confirm" - /> + <scroll-view scroll-y="true" class="scroll-Y"> + <view class="filter-main"> + <view class="filter-body date-button"> + <view class="condition-name">鏃ユ湡</view> + <view class="filter-name"> + <u-button :text="dateselect" @click="opencalendar"></u-button> + <view class="filter-button "> + <uni-calendar + ref="calendar" + class="uni-calendar--hook" + :clear-date="true" + :date="info.date" + :insert="info.insert" + :lunar="info.lunar" + :startDate="info.startDate" + :endDate="info.endDate" + :range="info.range" + @confirm="confirm" + /> + </view> + </view> + </view> + <view class="filter-body"> + <view class="condition-name">鐓ょ</view> + <view class="filter-name"> + <view class="filter-button" v-for="(item, index) in coalList" :key="index" @click="filterCondition(0, index, item.condition)"> + <u-button :text="item.condition" :type="item.active ? 'primary' : ''" size="small" :class="{ shadowactive: item.active }"></u-button> + </view> + <!-- <view class="toggle-button"> + <u-button :text="coalShow < coalTotal ? '鏌ョ湅鏇村' : '鏀惰捣'" type="primary" size="small" @click="toggle(0)" v-if="coalTotal > 3"></u-button> + </view> --> + </view> + </view> + <view class="filter-body" v-if="typeList.length !== 0"> + <view class="condition-name">绫诲瀷</view> + <view class="filter-name"> + <view class="filter-button" v-for="(item, index) in typeList" :key="index" @click="filterCondition(1, index, item.condition)"> + <u-button :text="item.condition" :type="item.active ? 'primary' : ''" size="small"></u-button> + </view> + <!-- <view class="toggle-button"> + <u-button :text="typeShow < typeTotal ? '鏌ョ湅鏇村' : '鏀惰捣'" type="primary" size="small" @click="toggle(1)" v-if="typeTotal > 3"></u-button> + </view> --> + </view> + </view> + <view class="filter-body" v-if="roleType !== 1"> + <view class="condition-name">瀹㈡埛</view> + <view class="filter-name"> + <view class="filter-button" v-for="(item, index) in customerList" :key="index" @click="filterCondition(2, index, item.condition)"> + <u-button :text="item.condition" :type="item.active ? 'primary' : ''" size="small"></u-button> + </view> + <!-- <view class="toggle-button"> + <u-button :text="customerShow < customerTotal ? '鏌ョ湅鏇村' : '鏀惰捣'" type="primary" size="small" @click="toggle(2)" v-if="customerTotal > 3"></u-button> + </view> --> + </view> + </view> + <view class="filter-body" v-if="roleType == 1"> + <view class="condition-name">璐т唬</view> + <view class="filter-name"> + <view class="filter-button" v-for="(item, index) in forwarderList" :key="index" @click="filterCondition(3, index, item.condition)"> + <u-button :text="item.condition" :type="item.active ? 'primary' : ''"></u-button> + </view> + <!-- <view class="toggle-button"> + <u-button + :text="forwarderShow < forwarderTotal ? '鏌ョ湅鏇村' : '鏀惰捣'" + type="primary" + size="small" + @click="toggle(3)" + v-if="forwarderTotal > 3" + ></u-button> + </view> --> + </view> + </view> + <view class="filter-body" v-if="roleType != 3"> + <view class="condition-name">杞﹂槦</view> + <view class="filter-name"> + <view class="filter-button" v-for="(item, index) in fleetList" :key="index" @click="filterCondition(4, index, item.condition)"> + <u-button :text="item.condition" :type="item.active ? 'primary' : ''" size="small"></u-button> + </view> + <!-- <view class="toggle-button"> + <u-button :text="fleetShow < fleetTotal ? '鏌ョ湅鏇村' : '鏀惰捣'" type="primary" size="small" @click="toggle(4)" v-if="fleetTotal > 3"></u-button> + </view> --> + </view> + </view> + <view class="filter-body"> + <view class="condition-name">鐭垮満</view> + <view class="filter-name"> + <view class="filter-button" v-for="(item, index) in filedList" :key="index" @click="filterCondition(5, index, item.condition)"> + <u-button :text="item.condition" :type="item.active ? 'primary' : ''" size="small"></u-button> + </view> + <!-- <view class="toggle-button"> + <u-button :text="filedShow < filedTotal ? '鏌ョ湅鏇村' : '鏀惰捣'" type="primary" size="small" @click="toggle(5)" v-if="filedTotal > 3"></u-button> + </view> --> + </view> + </view> + <view class="filter-body" v-if="roleType == 2"> + <view class="condition-name">杞︾墝鍙�</view> + <view class="filter-name"> + <view class="filter-button" v-for="(item, index) in carNoList" :key="index" @click="filterCondition(6, index, item.condition)"> + <u-button :text="item.condition" :type="item.active ? 'primary' : ''" size="small" v-if="index < carNoShow"></u-button> + </view> + <!-- <view class="toggle-button"> + <u-button :text="carNoShow < carNoTotal ? '鏌ョ湅鏇村' : '鏀惰捣'" type="primary" size="small" @click="toggle(6)" v-if="carNoTotal > 3"></u-button> + </view> --> </view> </view> </view> - <view class="filter-body"> - <view class="condition-name">鐓ょ</view> - <view class="filter-name"> - <view class="filter-button" v-for="(item, index) in coalList" :key="index" @click="filterCondition(0, index, item.condition)"> - <u-button :text="item.condition" :type="item.active ? 'primary' : ''" size="small" :class="{ shadowactive: item.active }"></u-button> - </view> - <!-- <view class="toggle-button"> - <u-button :text="coalShow < coalTotal ? '鏌ョ湅鏇村' : '鏀惰捣'" type="primary" size="small" @click="toggle(0)" v-if="coalTotal > 3"></u-button> - </view> --> - </view> - </view> - <view class="filter-body" v-if="typeList.length !== 0"> - <view class="condition-name">绫诲瀷</view> - <view class="filter-name"> - <view class="filter-button" v-for="(item, index) in typeList" :key="index" @click="filterCondition(1, index, item.condition)"> - <u-button :text="item.condition" :type="item.active ? 'primary' : ''" size="small"></u-button> - </view> - <!-- <view class="toggle-button"> - <u-button :text="typeShow < typeTotal ? '鏌ョ湅鏇村' : '鏀惰捣'" type="primary" size="small" @click="toggle(1)" v-if="typeTotal > 3"></u-button> - </view> --> - </view> - </view> - <view class="filter-body" v-if="roleType !== 1"> - <view class="condition-name">瀹㈡埛</view> - <view class="filter-name"> - <view class="filter-button" v-for="(item, index) in customerList" :key="index" @click="filterCondition(2, index, item.condition)"> - <u-button :text="item.condition" :type="item.active ? 'primary' : ''" size="small"></u-button> - </view> - <!-- <view class="toggle-button"> - <u-button :text="customerShow < customerTotal ? '鏌ョ湅鏇村' : '鏀惰捣'" type="primary" size="small" @click="toggle(2)" v-if="customerTotal > 3"></u-button> - </view> --> - </view> - </view> - <view class="filter-body" v-if="roleType == 1"> - <view class="condition-name">璐т唬</view> - <view class="filter-name"> - <view class="filter-button" v-for="(item, index) in forwarderList" :key="index" @click="filterCondition(3, index, item.condition)"> - <u-button :text="item.condition" :type="item.active ? 'primary' : ''"></u-button> - </view> - <!-- <view class="toggle-button"> - <u-button - :text="forwarderShow < forwarderTotal ? '鏌ョ湅鏇村' : '鏀惰捣'" - type="primary" - size="small" - @click="toggle(3)" - v-if="forwarderTotal > 3" - ></u-button> - </view> --> - </view> - </view> - <view class="filter-body" v-if="roleType != 3"> - <view class="condition-name">杞﹂槦</view> - <view class="filter-name"> - <view class="filter-button" v-for="(item, index) in fleetList" :key="index" @click="filterCondition(4, index, item.condition)"> - <u-button :text="item.condition" :type="item.active ? 'primary' : ''" size="small"></u-button> - </view> - <!-- <view class="toggle-button"> - <u-button :text="fleetShow < fleetTotal ? '鏌ョ湅鏇村' : '鏀惰捣'" type="primary" size="small" @click="toggle(4)" v-if="fleetTotal > 3"></u-button> - </view> --> - </view> - </view> - <view class="filter-body"> - <view class="condition-name">鐭垮満</view> - <view class="filter-name"> - <view class="filter-button" v-for="(item, index) in filedList" :key="index" @click="filterCondition(5, index, item.condition)"> - <u-button :text="item.condition" :type="item.active ? 'success' : ''" size="small"></u-button> - </view> - <!-- <view class="toggle-button"> - <u-button :text="filedShow < filedTotal ? '鏌ョ湅鏇村' : '鏀惰捣'" type="primary" size="small" @click="toggle(5)" v-if="filedTotal > 3"></u-button> - </view> --> - </view> - </view> - <view class="filter-body" v-if="roleType == 2"> - <view class="condition-name">杞︾墝鍙�</view> - <view class="filter-name"> - <view class="filter-button" v-for="(item, index) in carNoList" :key="index" @click="filterCondition(6, index, item.condition)"> - <u-button :text="item.condition" :type="item.active ? 'primary' : ''" size="small" v-if="index < carNoShow"></u-button> - </view> - <!-- <view class="toggle-button"> - <u-button :text="carNoShow < carNoTotal ? '鏌ョ湅鏇村' : '鏀惰捣'" type="primary" size="small" @click="toggle(6)" v-if="carNoTotal > 3"></u-button> - </view> --> - </view> - </view> + </scroll-view> + <view class="utils-button"> + <view class="reset-button"><u-button type="default" text="閲嶇疆" :plain="true" shape="circle" @click="resetCondition"></u-button></view> + <view class="confirm-button"><u-button type="primary" text="纭畾" :plain="true" shape="circle" @click="confirmCondition"></u-button></view> </view> </u-popup> <tab-bar :current="1"></tab-bar> @@ -208,6 +226,8 @@ }, first: '', last: '', + firstFilter: '', + lastFilter: '', taskList: [], filterList: [], totalLength: 0, @@ -232,7 +252,7 @@ // 鐐瑰嚮鍙崇澶磋鎯呭脊绐� faYunDetailobj: {}, modalShow: false, - coalStatus: ['棰嗗彇', '棰勭害', '绛惧埌', '鍏ュ満', '绉扮毊', '绉版瘺', '绂诲満', '鍏ョ鎴�', '鍑虹鎴�', '鍏ョ叅鍦�', '鍑虹叅浠�'] + coalStatus: ['棰嗗彇', '棰勭害', '绛惧埌', '鍏ュ満', '绉扮毊', '绉版瘺', '绂诲満', '鍏ョ鎴�', '鍑虹鎴�', '鍏ョ叅浠�', '鍑虹叅浠�', '鏀剧┖', '浣滃簾', '鍏ュ満鐢宠', '杩涘叆鍦洪櫌'] }; }, onShow() { @@ -248,6 +268,7 @@ let d = '01'; m = m < 10 ? '0' + m : m; //鏈堜唤琛� 0 this.first = [y, m, d].join('-'); + this.firstFilter = [y, m, d].join('-'); }, lastDate() { let y = new Date().getFullYear(); //鑾峰彇骞翠唤 @@ -256,6 +277,7 @@ m = m < 10 ? '0' + m : m; //鏈堜唤琛� 0 d = d < 10 ? '0' + d : d; //鏃ユ暟琛� 0 this.last = [y, m, d].join('-'); + this.lastFilter = [y, m, d].join('-'); }, // 绛涢�夋潯浠� getShipping() { @@ -414,6 +436,34 @@ this.totalTon = 0; } }, + // 纭畾绛涢�� + confirmCondition() { + this.conditinonShow = false; + }, + // 閲嶇疆绛涢�� + resetCondition() { + this.conditinonShow = false; + this.first = this.dateRange.slice(0, 10); + this.last = this.dateRange.slice(11); + this.coalList.forEach(v => { + v.active = false; + }); + this.typeList.forEach(v => { + v.active = false; + }); + this.customerList.forEach(v => { + v.active = false; + }); + this.forwarderList.forEach(v => { + v.active = false; + }); + this.fleetList.forEach(v => { + v.active = false; + }); + this.filedList.forEach(v => { + v.active = false; + }); + }, confirm(e) { console.log(e, '鏃ユ湡閫夋嫨'); this.first = e.range.before; @@ -511,10 +561,10 @@ return uni.getStorageSync('roleType'); }, dateRange() { - return `鏃ユ湡:${this.first}-${this.last}`; + return `${this.firstFilter}鑷�${this.lastFilter}`; }, dateselect() { - return `${this.first}-${this.last}`; + return `${this.first}鑷�${this.last}`; }, coalTotal() { return this.coalList.length; @@ -540,8 +590,8 @@ }, watch: { dateselect(newV, old) { - let tempDate = `${this.first}-${this.last}`; - if (newV != old && old != '-') { + let tempDate = `${this.first}鑷�${this.last}`; + if (newV != old && old != '鑷�') { this.first = newV.slice(0, 10); this.last = newV.slice(11); this.getTmTaskCoalData(); @@ -557,8 +607,44 @@ justify-content: space-between; align-items: center; } +@mixin firstLine { + width: 80%; + height: vww(68); + margin: vww(10) vww(16) 0 0; + display: flex; + justify-content: space-between; +} ::v-deep .toggle-button .u-button { width: vww(40); +} +.scroll-Y { + height: 1000rpx; + position: relative; + top: 20rpx; +} +.utils-button { + width: 94%; + height: vww(30); + margin: vww(50) auto; + @include flex; + .reset-button { + /deep/ .u-button { + border: 1px solid #c5c5c5; + outline: none; + } + } + .confirm-button { + /deep/ .u-button { + border: 1px solid #3b56eb; + outline: none; + color: #3b56eb; + } + } + /deep/ .u-button { + width: 279rpx; + height: 60rpx; + font-size: 28rpx; + } } .white-block { width: 100%; @@ -593,31 +679,31 @@ align-items: center; .content-text { height: vww(40); - @include flex flex-direction: column; + @include flex; + flex-direction: column; + margin-top: 31rpx; + margin-bottom: 31rpx; .content-container { width: 100%; - height: vww(16); + min-height: vww(16); font-size: 40rpx; - font-family: Source Han Sans CN; font-weight: bold; color: #3b56eb; text-align: center; } .content-num { width: 96rpx; - height: 24rpx; + min-height: 24rpx; font-size: 24rpx; - font-family: Source Han Sans CN; font-weight: 400; color: #333333; } } } .content-title { - width: 158rpx; + width: 160rpx; height: 38rpx; font-size: 40rpx; - font-family: Adobe Heiti Std; font-weight: normal; color: #ffffff; line-height: 69rpx; @@ -631,12 +717,15 @@ background: #ffffff; box-shadow: 0rpx 0rpx 14rpx 0rpx rgba(73, 120, 240, 0.14), 0rpx 7rpx 45rpx 0rpx rgba(73, 120, 240, 0.12); border-radius: 20rpx; - @include flex flex-direction: column; + @include flex; + flex-direction: column; overflow: hidden; + position: relative; + top: -145rpx; .data-filter { width: 635rpx; height: 68rpx; - border: 2px solid #5b95fd; + border: 2px solid rgba(73, 95, 252, 0.6); box-shadow: 0rpx 5rpx 13rpx 0rpx rgba(73, 95, 252, 0.6); border-radius: 34rpx; margin-top: vww(21); @@ -645,7 +734,6 @@ width: 330rpx; height: 40rpx; font-size: 28rpx; - font-family: Source Han Sans CN; font-weight: 400; color: #494949; } @@ -667,122 +755,156 @@ @include flex; flex-direction: column; margin-top: vww(5); + margin-bottom: vww(5); + overflow: hidden; + &:last-child { + .card-main { + &:last-child { + border-bottom: 0; + } + } + } .card-top { width: 96%; @include flex; .left { font-size: 30rpx; - font-family: Microsoft YaHei; font-weight: 400; color: #494949; } .card-top_num { font-size: 40rpx; - font-family: CTCuHeiSJ; font-weight: 400; color: #6074ee; } } .card-main { width: 100%; - height: vww(120); + height: vww(150); border-bottom: vww(1) solid #d6d6d6; margin-top: vww(12); + margin-left: vww(20); padding-bottom: vww(12); position: relative; @include flex flex-direction: column; align-items: flex-start; .first-line { - width: 94%; + width: 80%; height: vww(32); color: #303030; display: flex; justify-content: space-between; align-items: center; - .dispatch-receive { - width: 90%; + .main-information { + width: 88%; + height: vww(28); display: flex; - justify-content: space-between; + justify-content: flex-start; align-items: center; - margin-right: vww(12); - .container { - width: 100%; - display: flex; - justify-content: space-between; - align-items: center; + .sign { + width: vww(28); + height: vww(28); + line-height: vww(28); + text-align: center; + background: url('https://mx.jzeg.cn:9095/appimg/image/banner/blueblock.png') no-repeat; + background-size: contain; + font-size: 30rpx; + font-weight: 400; + color: #ffffff; + margin-right: vww(20); } - .receive-icon { - width: 62rpx; - height: 14rpx; - border-bottom: 3px solid #275fa5; - position: relative; - &:after { - content: ''; - position: absolute; - width: 3px; - height: 10px; - background-color: #275fa5; - right: 0; - transform: rotate(-45deg); - } - } + } + .main-divider { + width: 530rpx; + height: 1rpx; + background: #e3e3e3; + position: absolute; + top: 80rpx; + left: vww(50); } .point-number { width: 20%; font-size: 40rpx; - font-family: CTCuHeiSJ; font-weight: 400; color: #f81414; + position: absolute; + right: 12rpx; + display: flex; + flex-wrap: wrap; + } + } + .first-extra { + @include firstLine; + height: vww(32); + .main-information { + width: 100%; + height: vww(28); + display: flex; + justify-content: flex-start; + align-items: center; + .sign { + width: vww(28); + height: vww(28); + line-height: vww(28); + text-align: center; + background: url('https://mx.jzeg.cn:9095/appimg/image/banner/redblock.png') no-repeat; + background-size: contain; + font-size: 30rpx; + font-weight: 400; + color: #ffffff; + margin-right: vww(20); + } } } .second-line { - width: 60%; + width: 100%; height: vww(15); display: flex; justify-content: space-between; align-items: center; .coal-name { - width: 60%; + flex-grow: 1; height: 30rpx; font-size: 30rpx; - font-family: Microsoft YaHei; font-weight: 300; color: #515151; position: relative; display: flex; - justify-content: space-between; - } - .black-block { - width: 2rpx; - height: 30rpx; - background: #515151; - } - .coal-type { - width: 24%; - height: 30rpx; - font-size: 30rpx; - font-family: Microsoft YaHei; - font-weight: 300; - color: #515151; + align-items: center; + .black-bar { + width: 2rpx; + height: 30rpx; + background: #515151; + margin-left: vww(12); + } + .coal-type { + margin-left: vww(12); + min-width: vww(50); + height: 30rpx; + line-height: 30rpx; + font-size: 30rpx; + font-weight: 300; + color: #515151; + } } } .third-line { width: 40%; - height: vww(14); + min-height: vww(15); display: flex; - justify-content: space-between; - align-items: center; + justify-content: flex-start; + align-items: flex-start; .carnum-icon { width: 28rpx; - height: 24rpx; + height: 28rpx; + margin-right: vww(10); image { width: 28rpx; - height: 24rpx; + height: 28rpx; } } .carnum-text { font-size: 28rpx; - font-family: Microsoft YaHei; font-weight: 300; color: #515151; } @@ -791,14 +913,19 @@ width: 40%; height: vww(14); display: flex; - justify-content: space-between; + justify-content: flex-start; align-items: center; + color: #515151; + .time-icon { + margin-right: vww(10); + } } } } } } .filter-main { + min-height: 950rpx; width: 100%; display: flex; flex-direction: column; -- Gitblit v1.9.1