From 88a34566f7c3f77d90daa3fd57fb0abca3e1b5e6 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 27 二月 2025 09:12:06 +0800
Subject: [PATCH] ll

---
 pda/pages/index/center.vue |  472 +++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 366 insertions(+), 106 deletions(-)

diff --git a/pda/pages/index/center.vue b/pda/pages/index/center.vue
index a528592..74990cb 100644
--- a/pda/pages/index/center.vue
+++ b/pda/pages/index/center.vue
@@ -6,7 +6,8 @@
 			<view class="platform_list">
 				<view class="item" :class="{ active: item.id === activePlatform.id }"
 					v-for="(item, index) in activePlatformGroup.platformList" :key="index" @click="platformClick(item)">
-					{{ item.name }}</view>
+					{{ item.name }}
+				</view>
 			</view>
 			<view class="status_wrap">
 				<view class="status">浣滀笟锛�<text>{{ platformTaskInfo.workNum }}</text></view>
@@ -26,18 +27,24 @@
 						<text>{{ item.carCodeFront.slice(2) }}</text>
 					</view>
 					<view class="status" v-if="item.status != 4 && item.status != 5" :class="{ red: item.status == 8 }">
-						{{ statusMap[item.status] }}</view>
+						{{ statusMap[item.status] }}
+					</view>
 					<view class="status" v-if="item.status == 4">鍙彿涓� {{ item.callDateTemp }}</view>
 					<view class="status scs" v-if="item.status == 5">宸蹭綔涓� {{ item.startDateTemp }}</view>
 				</view>
-				<view class="line" v-if="item.type == 4">
-					<text class="label">鍚堝悓鍗曞彿</text>
-					<text class="value">{{ item.contractNum }}</text>
+				<view class="line" v-if="item.billCode">
+					<text class="label">杩愯緭鍗曞彿</text>
+					<text class="value">{{ item.billCode }}</text>
+					<text class="primaryColor" @click="handleDetail(item)">杩愬崟璇︽儏</text>
 				</view>
 				<view class="line" v-else>
-					<text class="label">杩愯緭鍗曞彿</text>
-					<text class="value">{{ item.code }}</text>
-					<text class="primaryColor" @click="handleDetail()">杩愬崟璇︽儏</text>
+					<text class="label">鍚堝悓鍗曞彿</text>
+					<text class="value">{{ item.contractNum }}</text>
+					<text class="primaryColor" @click="subDetail(item)">棰勭害璇︽儏</text>
+				</view>
+				<view class="line line2" v-if="item.billCode && item.wmsContractNum">
+					<text class="label">鍚堝悓鍗曞彿</text>
+					<text class="value">{{ item.wmsContractNum }}</text>
 				</view>
 				<view class="line">
 					<text class="label">椹鹃┒鍛�</text>
@@ -45,9 +52,9 @@
 				</view>
 				<view class="line">
 					<text class="label">鎬昏繍杈撻噺</text>
-					<text class="value">{{ item.totalNum }}涓囨敮</text>
+					<text class="value">{{ item.totalNum || item.ioQty}}涓囨敮</text>
 				</view>
-				<view class="line" v-if="item.type != 4">
+				<view class="line" v-if="item.carrierName">
 					<text class="label">杩愯緭鍏徃</text>
 					<text class="value">{{ item.carrierName }}</text>
 				</view>
@@ -79,6 +86,10 @@
 					<u-icon name="search" class="mr12" size="19" color="#999999" />
 					<input v-model="platformCallSearch" type="text" placeholder="鎼滅储杞﹁締鐗岀収" placeholder-class="placeholder9"
 						@confirm="callQuery" />
+				</view>
+				<view v-if="platformCallList.length == 0" class="empty_wrap">
+					<image src="@/static/default_nodata@2x.png" />
+					<text>鏆傛棤鎺掗槦杞﹁締</text>
 				</view>
 				<view class="order_list">
 					<scroll-view scroll-y="true" @scrolltolower="callScrolltolower" class="scroll_view">
@@ -94,14 +105,19 @@
                   statusMap[item.status]
                 }}</view>
 							</view>
-							<view class="line" v-if="item.type == 4">
-								<text class="label">鍚堝悓鍗曞彿</text>
-								<text class="value">{{ item.contractNum }}</text>
+							<view class="line" v-if="item.billCode">
+								<text class="label">杩愯緭鍗曞彿</text>
+								<text class="value">{{ item.billCode }}</text>
+								<text class="primaryColor" @click="handleDetail(item)">杩愬崟璇︽儏</text>
 							</view>
 							<view class="line" v-else>
-								<text class="label">杩愯緭鍗曞彿</text>
-								<text class="value">{{ item.code }}</text>
-								<text class="primaryColor" @click="handleDetail()">杩愬崟璇︽儏</text>
+								<text class="label">鍚堝悓鍗曞彿</text>
+								<text class="value">{{ item.contractNum }}</text>
+								<text class="primaryColor" @click="subDetail(item)">棰勭害璇︽儏</text>
+							</view>
+							<view class="line line2" v-if="item.billCode && item.wmsContractNum">
+								<text class="label">鍚堝悓鍗曞彿</text>
+								<text class="value">{{ item.wmsContractNum }}</text>
 							</view>
 							<view class="line">
 								<text class="label">椹鹃┒鍛�</text>
@@ -109,9 +125,9 @@
 							</view>
 							<view class="line">
 								<text class="label">鎬昏繍杈撻噺</text>
-								<text class="value">{{ item.totalNum }}涓囨敮</text>
+								<text class="value">{{ item.totalNum || item.ioQty }}涓囨敮</text>
 							</view>
-							<view class="line" v-if="item.type != 4">
+							<view class="line" v-if="item.carrierName">
 								<text class="label">杩愯緭鍏徃</text>
 								<text class="value">{{ item.carrierName }}</text>
 							</view>
@@ -124,53 +140,49 @@
 			</view>
 		</u-popup>
 		<!-- 杩愬崟璇︽儏 -->
-		<u-popup :show="showDetail" closeable safeAreaInsetTop round="10" @close="showDetail = false">
-			<view class="PlatformCallModal" :style="{ height: 'calc(100vh - ' + windowTop + 'px)' }">
-				<view class="title">杩愬崟璇︽儏</view>
-				<view class="platform_ing" style="padding: 0">
-					<view class="head">
-						<view class="code">
-							<text>鐨�</text>
-							<text>AD1212</text>
-						</view>
+		<u-popup :show="showDetail" :round="10" :safeAreaInsetBottom="true" closeOnClickOverlay :closeable="true"
+			mode="bottom" @close="showDetail = false">
+			<view class="detail_modal">
+				<view class="modal_title">杩愬崟璇︽儏</view>
+				<view v-if="wmsInfo.plateNumber" class="id_card">
+					<text>{{ wmsInfo.plateNumber.slice(0, 1) }}</text>
+					<text>{{ wmsInfo.plateNumber.slice(1, 2) }}</text>
+					<text>路</text>
+					<text>{{ wmsInfo.plateNumber.slice(2) }}</text>
+				</view>
+				<!--  -->
+				<view class="info">
+					<view class="line">
+						<view class="label">杩愯緭鍗曞彿</view>
+						<view class="value">{{ wmsInfo.carryBillCode }}</view>
 					</view>
 					<view class="line">
-						<text class="label">杩愯緭鍗曞彿</text>
-						<text class="value">11111</text>
+						<view class="label">椹鹃┒鍛�</view>
+						<view class="value">{{ wmsInfo.driverName }} {{ wmsInfo.driverPhone }}</view>
 					</view>
 					<view class="line">
-						<text class="label">椹鹃┒鍛�</text>
-						<text class="value">11111</text>
+						<view class="label">鎬昏繍杈撻噺</view>
+						<view class="value">{{ wmsInfo.ioQty }}涓囨敮</view>
 					</view>
 					<view class="line">
-						<text class="label">鎬昏繍杈撻噺</text>
-						<text class="value">11111</text>
-					</view>
-					<view class="line">
-						<text class="label">杩愯緭鍏徃</text>
-						<text class="value">11111</text>
+						<view class="label">杩愯緭鍏徃</view>
+						<view class="value">{{ wmsInfo.carrierName }}</view>
 					</view>
 				</view>
-				<view class="detail_list">
-					<view class="item">
-						<view class="orderId">鍚堝悓缂栧彿锛歿{ 111 }}</view>
-						<view class="addr">鏀惰揣鍦帮細{{ 111 }}</view>
-						<view class="content">
-							<view class="line">
-								<view class="label">鐗╂枡锛�</view>
-								<view class="value">榛勫北</view>
-							</view>
-							<view class="line">
-								<view class="label">鏁伴噺锛�</view>
-								<view class="value">榛勫北</view>
-							</view>
-							<view class="line">
-								<view class="label">鐗╂枡锛�</view>
-								<view class="value">榛勫北</view>
-							</view>
-							<view class="line">
-								<view class="label">鏁伴噺锛�</view>
-								<view class="value">榛勫北</view>
+				<view class="contract_wrap">
+					<view class="contract_list" v-for="item in wmsInfo.wmsJobContractVOList">
+						<view class="title">鍚堝悓鍙凤細{{ item.contractCode }}</view>
+						<view class="address">鏀惰揣鍦帮細{{ item.address }}</view>
+						<view class="list">
+							<view class="item" v-for="line in item.platformWmsDetailList">
+								<view class="line">
+									<view class="label">鐗╂枡锛�</view>
+									<view class="value">{{ line.materialName }}</view>
+								</view>
+								<view class="line">
+									<view class="label">鏁伴噺锛�</view>
+									<view class="value">{{ line.ioQty }}涓囨敮</view>
+								</view>
 							</view>
 						</view>
 					</view>
@@ -182,9 +194,8 @@
 			<view class="TransformModal">
 				<view class="title">杞Щ鏈堝彴</view>
 				<view class="transform_list">
-					<view class="line" @click="transformPlatClick(item)" v-for="item in activePlatformGroup.platformList"
-						:key="item.id">
-						<view class="name">{{ item.name }}</view>
+					<view class="line" @click="transformPlatClick(item)" v-for="item in TransferList" :key="item.id">
+						<view class="name">{{ item.name  || item.platformName}}</view>
 						<view class="status" :class="{ green: item.workStatus == 1 }">({{ item.workStatus == 0 ? "绌洪棽" : "浣滀笟涓�" }})
 						</view>
 						<image v-if="transformPlatId == item.id" src="@/static/ic_select@2x.png" class="checked" />
@@ -213,7 +224,8 @@
 		finishWork,
 		platformMove,
 		platformErr,
-		platformOverNumber
+		platformOverNumber,
+		wmsJobDetail
 	} from '@/api'
 	import {
 		statusMap
@@ -226,7 +238,7 @@
 		data() {
 			return {
 				statusMap,
-				windowTop: 44,
+				windowTop: 24,
 				showPlatformCall: false, // 鏈堝彴鍙彿
 				showDetail: false,
 				showTransform: false, // 杞Щ
@@ -245,18 +257,51 @@
 
 				transformPlatId: '', // 杞Щ璁板綍鏈堝彴id
 				transformId: '', // 杞Щ璁板綍浠诲姟id
+				TransferList: [],
+				wmsInfo: {},
+				timer: null,
+				timer1: null,
 			}
 		},
 		onLoad() {
 			this.getPlatformGroup()
-			const res = uni.getWindowInfo()
-			this.windowTop = res.windowTop
+		},
+		onHide(){
+			if(this.timer1){
+				clearInterval(this.timer1)
+			}
+			if(this.timer){
+				clearInterval(this.timer)
+			}
+		},
+		onUnload(){
+			if(this.timer1){
+				clearInterval(this.timer1)
+			}
+			if(this.timer){
+				clearInterval(this.timer)
+			}
 		},
 		methods: {
+			getTransferList() {
+				getPlatformGroupList({
+					queryData: 1,
+					queryType: 1
+				}).then(res => {
+					const platformGroupList = res.data || []
+					if (platformGroupList.length > 0) {
+						const {
+							activePlatformGroup
+						} = this
+						const temp = platformGroupList.find(i => i.id === activePlatformGroup.id)
+						this.TransferList = temp.platformList || []
+					}
+				})
+			},
 			getPlatformGroup() {
 				getPlatformGroupList({
 					queryData: 1,
-					queryType: 0
+					queryType: 1
 				}).then(res => {
 					this.platformGroupList = res.data || []
 					if (this.platformGroupList.length > 0) {
@@ -264,38 +309,60 @@
 						if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
 							this.activePlatform = this.activePlatformGroup.platformList[0]
 							this.getPlatformTask()
+							this.timer = setInterval(() => {
+								this.getPlatformTask()
+							}, 120 * 1000)
 						}
 					}
 				})
 			},
-			getPlatformTask() {
+			getPlatformTask() {
+				if(this.timer1){
+					clearInterval(this.timer1)
+				}
 				getPlatformWorkData({
 					platformId: this.activePlatform.id
 				}).then(res => {
-					this.platformTaskInfo = res.data
-					this.circulInitTaskList()
-					setInterval(() => {
-						this.circulInitTaskList()
+					this.platformTaskInfo = res.data
+					this.currentDate = new Date(res.data.currentDate).getTime()
+					this.circulInitTaskList()
+					this.currentDate = this.currentDate + 1000
+					this.timer1 = setInterval(() => {
+						this.circulInitTaskList()
+						this.currentDate = this.currentDate + 1000
 					}, 1000)
-				})
+				}, () => {})
 			},
-			circulInitTaskList() {
+			circulInitTaskList() {
+				let time = this.currentDate
 				if (this.platformTaskInfo && this.platformTaskInfo.platformJobList && this.platformTaskInfo.platformJobList
 					.length > 0) {
-					let time = new Date()
-					this.platformTaskInfo.platformJobList.forEach(item => {
-						if (item.callDate) {
-							let timeNum = time.getTime() - new Date(item.callDate).getTime()
+					this.platformTaskInfo.platformJobList.forEach(item => {
+						if(item.wmsContractNum){
+							item.wmsContractNum = item.wmsContractNum.split(',').join('锛�')
+						}
+						if (item.newCallDate) {
+							let timeNum = 0
+							if(time > new Date(item.newCallDate).getTime()){
+								timeNum = time - new Date(item.newCallDate).getTime()
+							}else{
+								timeNum = 0
+							}
 							if (timeNum > 3600000) {
 								item.callDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖绉�')
 							} else {
 								item.callDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
 							}
 						}
-						if (item.startDate) {
-							let timeNum = time.getTime() - new Date(item.startDate).getTime()
+						if (item.newStartDate) {
+							let timeNum = 0
+							if(time > new Date(item.newStartDate).getTime()){
+								timeNum = time - new Date(item.newStartDate).getTime()
+							}else{
+								timeNum = 0
+							}
 							if (timeNum > 3600000) {
-								item.startDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖s绉�')
+								item.startDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖绉�')
 							} else {
 								item.startDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
 							}
@@ -310,6 +377,10 @@
 				if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
 					this.activePlatform = this.activePlatformGroup.platformList[0]
 					this.getPlatformTask()
+					clearInterval(this.timer)
+					this.timer = setInterval(() => {
+						this.getPlatformTask()
+					}, 60 * 1000)
 				}
 				this.showPlatformgroup = false
 			},
@@ -317,23 +388,37 @@
 				this.activePlatform = item
 				this.getPlatformTask()
 			},
-			handleDetail() {
-				this.showDetail = true
+			handleDetail(param) {
+				wmsJobDetail({
+					id: param.id
+				}).then(res => {
+					this.wmsInfo = res.data
+					this.showDetail = true
+				})
+			},
+			subDetail(item) {
+				uni.navigateTo({
+					url: `/pages/index/SubDetail?id=${item.bookId}`
+				})
 			},
 			handleFinish(item) {
 				finishWork({
 					jobId: item.id
 				}).then(res => {
-					this.showToast('瀹屾垚浣滀笟')
-					this.getPlatformTask()
+						if (res && res.code == 200) {
+							this.showToast('瀹屾垚浣滀笟')
+							this.getPlatformTask()
+						}
 				})
 			},
 			handleWork(item) { // 寮�濮嬩綔涓�
 				beginWork({
 					jobId: item.id
 				}).then(res => {
-					this.showToast('宸插紑濮嬩綔涓�')
-					this.getPlatformTask()
+					if (res && res.code == 200) {
+						this.showToast('宸插紑濮嬩綔涓�')
+						this.getPlatformTask()
+					}
 				})
 			},
 			handlePass(item) {
@@ -362,19 +447,26 @@
 				this.platformCallPage = 1
 				if (callType == 1) { // 鍏ュ洯鍙彿
 					platformInPark({
-						jobId: item.id
-					}).then(res => {
-						this.showToast('鍙彿鎴愬姛')
-						this.getPlatformCallList()
+						jobId: item.id,
+						platformId: activePlatform.id
+					}).then(res => {
+						if (res && res.code == 200) {
+							this.showToast('鍙彿鎴愬姛')
+							this.getPlatformCallList()
+						}
+						
 					})
 				} else { // 鏈堝彴鍙彿
 					platformCallNumber({
 						platformId: activePlatform.id,
 						jobId: item.id
-					}).then(res => {
-						this.showToast('鍙彿鎴愬姛')
-						this.getPlatformCallList()
-						this.getPlatformTask()
+					}).then(res => {
+						if (res && res.code == 200) {
+							this.showToast('鍙彿鎴愬姛')
+							this.getPlatformCallList()
+							this.getPlatformTask()
+						}
+						
 					})
 				}
 			},
@@ -417,7 +509,12 @@
 					page: platformCallPage
 				}).then(res => {
 					if (res.data && res.data.records) {
-						this.platformCallList = [...this.platformCallList, ...res.data.records]
+						this.platformCallList = [...this.platformCallList, ...res.data.records]
+						this.platformCallList.forEach(item => {
+							if(item.wmsContractNum){
+								item.wmsContractNum = item.wmsContractNum.split(',').join('锛�')
+							}
+						})
 						this.platformCallTotal = res.data.total
 					}
 				})
@@ -449,6 +546,7 @@
 				} = this
 				this.transformId = item.id
 				this.transformPlatId = activePlatform.id
+				this.getTransferList()
 				this.showTransform = true
 			},
 			handleErr(item) {
@@ -470,6 +568,10 @@
 	}
 </script>
 <style lang="scss">
+	page {
+		background-color: #f1f2f2;
+	}
+
 	.main_app {
 		padding: 0rpx;
 		height: calc(100vh - 44px);
@@ -487,7 +589,7 @@
 				flex-wrap: wrap;
 
 				.item {
-					width: 210rpx;
+					width: 220rpx;
 					height: 80rpx;
 					line-height: 80rpx;
 					text-align: center;
@@ -496,8 +598,11 @@
 					border: 1rpx solid #999999;
 					font-size: 30rpx;
 					color: #222222;
-					margin-bottom: 20rpx;
-					margin-right: 30rpx;
+					margin-bottom: 15rpx;
+					margin-right: 15rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
 
 					&:nth-of-type(3n) {
 						margin-right: 0;
@@ -560,16 +665,22 @@
 				margin-bottom: 30rpx;
 
 				.code {
-					display: flex;
 					font-weight: 600;
 					height: 60rpx;
-					line-height: 60rpx;
+					display: flex;
+					justify-content: center;
+					align-items: center;
 					font-size: 32rpx;
 					color: #111111;
 					border-radius: 8rpx;
 					border: 1rpx solid #dfdede;
 
 					text {
+						display: flex;
+						justify-content: center;
+						align-items: center;
+						height: 100%;
+
 						&:nth-of-type(1) {
 							background: #e9f5f6;
 							padding: 0 12rpx;
@@ -600,12 +711,15 @@
 				margin-bottom: 20rpx;
 
 				.label {
-					width: 144rpx;
-					color: #666666;
+					width: 132rpx;
+					color: #666666;
+					flex-shrink: 0;
 				}
 
 				.value {
-					flex: 1;
+					flex: 1;
+					display: flex;
+					flex-wrap: wrap;
 				}
 			}
 
@@ -652,8 +766,9 @@
 			.btn {
 				width: 224rpx;
 				height: 88rpx;
-				line-height: 88rpx;
-				text-align: center;
+				display: flex;
+				justify-content: center;
+				align-items: center;
 				background: #ffffff;
 				border-radius: 44rpx;
 				color: $uni-color-primary;
@@ -689,7 +804,8 @@
 		}
 
 		.order_list {
-			height: calc(100% - 140rpx);
+			height: calc(100% - 160rpx);
+			margin-top: 20rpx;
 
 			.scroll_view {
 				height: 100%;
@@ -698,6 +814,10 @@
 			.platform_ing {
 				border-radius: 8rpx;
 				border: 1rpx solid #dfe2e8;
+
+				&:nth-of-type(1) {
+					margin-top: 0;
+				}
 			}
 		}
 
@@ -740,7 +860,8 @@
 					.label {
 						font-size: 28rpx;
 						color: #666666;
-						width: 88rpx;
+						width: 88rpx;
+						flex-shrink: 0;
 					}
 
 					.value {
@@ -848,4 +969,143 @@
 			}
 		}
 	}
+
+	.detail_modal {
+		height: 100vh;
+		padding: 36rpx 30rpx;
+		border-radius: 12rpx;
+		box-shadow: 0 0 6rpx rgba(0, 0, 0, 0.5);
+
+		.modal_title {
+			font-weight: 600;
+			font-size: 32rpx;
+			color: #222222;
+			line-height: 44rpx;
+			text-align: center;
+			margin-bottom: 36rpx;
+		}
+
+		.contract_wrap {
+			height: calc(100% - 400rpx);
+			overflow-y: auto;
+		}
+
+		.contract_list {
+			border-top: 1rpx solid #E5E5E5;
+			margin-bottom: 30rpx;
+			padding-top: 30rpx;
+
+			&:nth-last-child(1) {
+				margin-bottom: 0;
+			}
+
+			.list {
+				background: #f7f7f7;
+				border-radius: 8rpx;
+				padding: 20rpx;
+
+				.item {
+					border-bottom: 1rpx solid #e5e5e5;
+					padding-bottom: 20rpx;
+					margin-bottom: 20rpx;
+
+					&:nth-last-child(1) {
+						border: none;
+						padding-bottom: 0;
+						margin-bottom: 0;
+					}
+				}
+
+				.line {
+					display: flex;
+					margin-bottom: 20rpx;
+
+					&:nth-last-child(1) {
+						margin-bottom: 0rpx;
+					}
+
+					.label {
+						color: #666666;
+						width: 92rpx;
+					}
+
+					.value {
+						flex: 1;
+						color: #222222;
+					}
+				}
+			}
+
+			.title {
+				font-weight: 600;
+				font-size: 30rpx;
+				color: $uni-color-primary;
+				margin-bottom: 12rpx;
+			}
+
+			.address {
+				font-size: 26rpx;
+				color: #666666;
+				margin-bottom: 20rpx;
+			}
+		}
+
+		.info {
+			.line {
+				display: flex;
+				margin-bottom: 20rpx;
+
+				.label {
+					font-size: 30rpx;
+					color: #666666;
+					width: 150rpx;
+				}
+
+				.value {
+					flex: 1;
+					font-size: 30rpx;
+					color: #222222;
+				}
+			}
+		}
+
+		.separate {
+			width: 750rpx;
+			height: 2rpx;
+			margin: 30rpx -30rpx;
+			border: 1rpx solid #e5e5e5;
+		}
+
+		.id_card {
+			display: flex;
+			font-weight: 600;
+			height: 60rpx;
+			line-height: 60rpx;
+			font-size: 32rpx;
+			color: #111111;
+			border-radius: 8rpx;
+			border: 1rpx solid #dfdede;
+			width: 220rpx;
+			margin-bottom: 15rpx;
+
+			text {
+				&:nth-of-type(1) {
+					background: #e9f5f6;
+					padding: 0 12rpx;
+				}
+
+				&:nth-of-type(2) {
+					padding-left: 10rpx;
+				}
+
+				&:nth-of-type(4) {
+					padding-right: 6rpx;
+				}
+			}
+		}
+	}
+	.line2{
+		margin-right: -30rpx;
+		padding-right: 0;
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3