소스 검색

1.修改登录和注册页面的logo
2.修改检验记录,关键工序记录页面(删除固有的banner title名称,删除底部的返回按钮)
3.替换uni-tag 使用字写方标签方式,解决安卓真机的兼容性问题
4.美化UI
5.添加序列号点击跳转对应项目
6.添加拍照点、检验记录和关键工序的前一项和下一项按钮,并添加控制逻辑(第一项没有前一项按钮,最后一项没有下一项按钮)

zhangxike 3 일 전
부모
커밋
9932bfefd0

+ 1 - 1
config.uts

@@ -26,7 +26,7 @@ export const globalConfig  = {
     // 应用版本
     version: "1.1.0",
     // 应用logo
-    logo: "/static/logo.png",
+    logo: "/static/newLogo.png",
     // 官方网站
     site_url: "http://ruoyi.vip",
     // 政策协议

+ 8 - 8
pages.json

@@ -28,7 +28,7 @@
         {
             "path" : "pages/work/record/RecordList",
             "style" : {
-                "navigationBarTitleText" : "声像记录"
+                "navigationBarTitleText" : "拍照点"
             }
         },
 		{
@@ -58,7 +58,7 @@
         {
             "path" : "pages/work/process/ProcessList",
             "style" : {
-                "navigationBarTitleText" : "关键工序"
+                "navigationBarTitleText" : "关键工序记录"
             }
         },
         {
@@ -145,13 +145,13 @@
                 "iconPath" : "static/images/tabbar/work.png",
                 "selectedIconPath" : "static/images/tabbar/work_.png",
                 "text" : "工作台"
-            },
-            {
-                "pagePath" : "pages/mine/index",
-                "iconPath" : "static/images/tabbar/mine.png",
-                "selectedIconPath" : "static/images/tabbar/mine_.png",
-                "text" : "我的"
             }
+            // {
+            //     "pagePath" : "pages/mine/index",
+            //     "iconPath" : "static/images/tabbar/mine.png",
+            //     "selectedIconPath" : "static/images/tabbar/mine_.png",
+            //     "text" : "我的"
+            // }
         ]
     },
     "globalStyle" : {

+ 2 - 1
pages/login.uvue

@@ -1,7 +1,7 @@
 <template>
   <view class=" normal-login-container my-page">
     <view class="logo-content align-center justify-center flex">
-      <image class="my-image" style="width: 100rpx;height: 100rpx;" :src="(globalConfig['appInfo'] as UTSJSONObject)['logo'] as string" mode="widthFix">
+      <image class="my-image" style="width: 150rpx;height: 150rpx;" :src="(globalConfig['appInfo'] as UTSJSONObject)['logo'] as string" mode="widthFix">
       </image>
       <text class="title">系统登录</text>
     </view>
@@ -186,6 +186,7 @@
 		text-align: center;  
         margin-left: 10px;
 		font-size: 21px;
+		margin-top: 15rpx;
       }
     }
 

+ 3 - 3
pages/register.uvue

@@ -1,10 +1,10 @@
 <template>
   <view class=" normal-login-container my-page">
     <view class=" logo-content align-center justify-center flex">
-        <image class="my-image" style="width: 100rpx;height: 100rpx;" :src="(globalConfig['appInfo'] as UTSJSONObject)['logo'] as string" mode="widthFix">
+        <image class="my-image" style="width: 150rpx;height: 150rpx;" :src="(globalConfig['appInfo'] as UTSJSONObject)['logo'] as string" mode="widthFix">
       </image>
 	  
-      <text class="title">若依移动端注册</text>
+      <text class="title">用户注册</text>
     </view>
     <view class=" login-form-content">
       <view class=" input-item flex align-center uni-row">
@@ -168,7 +168,7 @@ import { getCodeImg, register, RegForm} from '@/api/login'
       }
 
       .title {
-        margin-left: 10px;
+		margin-top: 15rpx;
       }
     }
 

+ 177 - 91
pages/work/process/ProcessList.uvue

@@ -1,10 +1,21 @@
 <template>
-	<scroll-view class="container">
-		<!-- Banner -->
-		<view class="banner">
-			<text class="banner-title">关键工序</text>
+	<view class="record-card flex-row">
+		<!-- <uni-tag class="tag-circle" v-for="(tag,index) in 6" :key="index" :text="tag+''" size="medium" type="primary" circle
+			@click="tabsClick(tag)"></uni-tag> -->
+		<view class="tag-circle" v-for="(tag,index) in maxcount" :key="index" @click="tabsClick(tag)">
+			<text class="circle" :class="{
+							'bg-green': tag<=2,
+							'bg-yellow': tag%3 === 0,
+							'bg-red': tag%2 === 0,
+							'bg-black': tag>=4
+						  }">{{tag}}</text>
 		</view>
-		<view class="card-list" style="flex-direction: row;">
+	</view>
+	<!-- #ifdef APP -->
+	<scroll-view style="flex:1">
+	<!-- #endif -->
+
+		<!-- 		<view class="card-list" style="flex-direction: row;">
 				  <uni-tag
 				        v-for="(tag,index) in 6" :key="index"
 						:text="tag +''"					
@@ -14,46 +25,33 @@
 						@click="tabsClick(tag)"
 						style="width:40rpx;margin: 0 10rpx;"	  
 					></uni-tag>
-		</view>
+		</view> -->
 
 		<!-- 检查报告卡片列表 -->
 		<view v-if="processList.length" class="card-list">
-			<view class="card card-view" v-for="item in processList" :key="item.id" v-show="current == item.id">				
-				<view class="divider"></view>
+			<view class="card card-view" v-for="item in processList" :key="item.id" v-show="current == item.id">
 				<view class="info-row">
 					<text class="label info-text">序号</text>
 					<view class="value info-text">
 						<uni-number-box v-model="item.id" disabled></uni-number-box>
-					</view>	
+					</view>
 				</view>
 				<view class="info-row">
 					<text class="label info-text">产品码</text>
 					<view class="value info-text">
-						<input
-						    v-model="item.productcode"
-						    class="surround"
-							disabled
-						  ></input>
+						<input v-model="item.productcode" class="surround" disabled></input>
 					</view>
 				</view>
 				<view class="info-row">
 					<text class="label info-text">检测项目</text>
 					<view class="value info-text">
-						<input
-						    v-model="item.invname"
-						    class="surround"
-							disabled
-						  ></input>
+						<input v-model="item.invname" class="surround" disabled></input>
 					</view>
 				</view>
 				<view class="info-row">
 					<text class="label info-text">分类</text>
 					<view class="value info-text">
-						<input
-						    v-model="item.model"
-						    class="surround"
-							disabled
-						  ></input>
+						<input v-model="item.model" class="surround" disabled></input>
 					</view>
 				</view>
 				<view class="info-row">
@@ -68,28 +66,25 @@
 						<uni-number-box v-model="item.lowerlimit" :min="0" disabled></uni-number-box>
 					</view>
 				</view>
-				
+
 				<view class="divider"></view>
 				<view class="info-row">
 					<text class="label info-text">实测值小</text>
 					<view class="value info-text">
-						<uni-number-box v-model="item.minactval" :min="0" ></uni-number-box>
+						<uni-number-box v-model="item.minactval" :min="0"></uni-number-box>
 					</view>
 				</view>
 				<view class="info-row">
 					<text class="label info-text">实测值大</text>
 					<view class="value info-text">
-						<uni-number-box v-model="item.maxactval" :min="0" ></uni-number-box>
-					</view>	
+						<uni-number-box v-model="item.maxactval" :min="0"></uni-number-box>
+					</view>
 				</view>
 				<view class="info-row">
-					<text class="label info-text">结论</text>	
+					<text class="label info-text">结论</text>
 					<view class="value info-text">
-						<input
-						    v-model="item.conclusion"
-						    class="surround"
-						  ></input>
-					</view>	
+						<input v-model="item.conclusion" class="surround"></input>
+					</view>
 				</view>
 			</view>
 		</view>
@@ -99,65 +94,77 @@
 			<image src="/static/image/empty.png" class="empty-img" />
 			<text class="empty-text">暂无检查检验记录</text>
 		</view>
+
+		<view class="info-row btn-panel">
+			<button class="btn btn-first" @click="tabsClick(current-1)" v-if="current > 1">
+				前一项
+			</button>
+			<button class="btn btn-second" @click="tabsClick(current+1)" v-if="current < maxcount">
+				下一项
+			</button>
+		</view>
+
+	<!-- #ifdef APP -->
 	</scroll-view>
+	<!-- #endif -->
 </template>
 
 <script setup>
 	import {
 		ref
 	} from 'vue'
-	
+
 	type Process = {
-		id: number,
-		productcode: string,
-		invname: string,
-		model: string,
-		upperlimit: number,
-		lowerlimit: number, 
-		minactval: number,
-		maxactval: number,
-		conclusion: string,			
-		applyDate:  string,
-		reportDate: string
-	}
-		
+		id : number,
+		productcode : string,
+		invname : string,
+		model : string,
+		upperlimit : number,
+		lowerlimit : number,
+		minactval : number,
+		maxactval : number,
+		conclusion : string,
+		applyDate : string,
+		reportDate : string
+	}
+	//检查项目最大数量
+	var maxcount = 5
 	var current = ref(1)
-	var processList = ref<Process[]>([]) 
-	  
+	var processList = ref<Process[]>([])
+
 	const initProcessList = [{
-			id: 1,
-			productcode:"YH0001",
-			invname: '对称度',
-			model: '重要尺寸',
-			upperlimit:0.5,
-			lowerlimit:0, 
-			minactval:0,
-			maxactval:0,
-			conclusion:'',			
-			applyDate: '2025-08-20 09:15',
-			reportDate: '2025-08-20 17:30'
-		},
-		{
-			id: 2,
-			productcode:"YH0001",
-			invname: '对称度',
-			model: '重要尺寸',
-			upperlimit:0.5,
-			lowerlimit:0, 
-			minactval:0,
-			maxactval:0,
-			conclusion:'',
-			applyDate: '2025-08-28 10:00',
-			reportDate: '2025-08-28 13:40'
-		}
+		id: 1,
+		productcode: "YH0001",
+		invname: '对称度',
+		model: '重要尺寸',
+		upperlimit: 0.5,
+		lowerlimit: 0,
+		minactval: 0,
+		maxactval: 0,
+		conclusion: '',
+		applyDate: '2025-08-20 09:15',
+		reportDate: '2025-08-20 17:30'
+	},
+	{
+		id: 2,
+		productcode: "YH0001",
+		invname: '对称度',
+		model: '重要尺寸',
+		upperlimit: 0.5,
+		lowerlimit: 0,
+		minactval: 0,
+		maxactval: 0,
+		conclusion: '',
+		applyDate: '2025-08-28 10:00',
+		reportDate: '2025-08-28 13:40'
+	}
 	] as Process[];
-	
-	processList.value = initProcessList.filter(item=>item.id == current.value);
-	const tabsClick = (obj: number) =>{
+
+	processList.value = initProcessList.filter(item => item.id == current.value);
+	const tabsClick = (obj : number) => {
 		current.value = obj
-		processList.value = initProcessList.filter(item=>item.id == current.value)		
+		processList.value = initProcessList.filter(item => item.id == current.value)
 	}
-  
 </script>
 
 <style scoped>
@@ -165,11 +172,11 @@
 		padding: 40rpx;
 		background-color: #f5f7fa;
 		height: 100%;
-		box-sizing: border-box;		
+		box-sizing: border-box;
 	}
 
-	.banner {		
-		background: linear-gradient(135deg, #6dd5ed, #2193b0);		
+	.banner {
+		background: linear-gradient(135deg, #6dd5ed, #2193b0);
 		border-radius: 24rpx;
 		padding: 40rpx 30rpx;
 		margin-bottom: 40rpx;
@@ -182,9 +189,9 @@
 		font-weight: bold;
 		text-align: center;
 	}
-	
-	.box{
-		width: 40rpx; 
+
+	.box {
+		width: 40rpx;
 		background-color: #909193;
 		border-radius: 15rpx;
 	}
@@ -193,10 +200,11 @@
 		display: flex;
 		flex-direction: column;
 	}
+
 	.card-list .card-view {
 		margin-bottom: 30rpx;
 	}
-	
+
 	.card {
 		background-color: white;
 		border-radius: 20rpx;
@@ -231,16 +239,17 @@
 		align-items: center;
 		padding: 20rpx;
 	}
+
 	.info-row .info-text {
 		margin-right: 10rpx;
 	}
-			
+
 	.label {
 		font-weight: bold;
 		color: #102a43;
 		min-width: 150rpx;
 	}
-	
+
 	.value {
 		flex: 1;
 		/* #ifdef APP-NVUE */
@@ -263,10 +272,11 @@
 		display: flex;
 		flex-direction: column;
 	}
+
 	.card-info .card-info-view {
 		margin-bottom: 10rpx;
 	}
-	
+
 	.btn-group {
 		display: flex;
 		justify-content: flex-end;
@@ -285,11 +295,12 @@
 		/* #endif */
 	}
 
-  /* #ifndef APP-ANDROID */
+	/* #ifndef APP-ANDROID */
 	.main-btn:active {
 		opacity: 0.9;
 		transform: scale(0.98);
 	}
+
 	/* #endif */
 
 	.empty-card {
@@ -312,8 +323,83 @@
 		font-size: 30rpx;
 		color: #999;
 	}
+
 	.surround {
 		border: 1px solid silver;
 		border-radius: 10rpx;
 	}
+
+	.record-card {
+		background: #ffffff;
+		border-radius: 20rpx;
+		padding: 24rpx 32rpx;
+		box-shadow: 0 8rpx 15rpx rgba(0, 43, 92, 0.1);
+		display: flex;
+		flex-direction: column;
+		margin-bottom: 20rpx;
+		margin-top: 20rpx;
+	}
+
+	.flex-row {
+		flex-direction: row;
+	}
+
+	.tag-circle {
+		width: 50rpx;
+		margin: 0 10rpx;
+		border-radius: 50rpx;
+	}
+
+	.circle {
+		height: 50rpx;
+		width: 50rpx;
+		background-color: #004a99;
+		text-align: center;
+		color: #fff;
+		line-height: 50rpx;
+	}
+
+	.bg-green {
+		background-color: seagreen;
+	}
+
+	.bg-yellow {
+		background-color: yellow;
+	}
+
+	.bg-black {
+		background-color: #102a43;
+	}
+
+	.bg-red {
+		background-color: red;
+	}
+
+	.btn-panel {
+		position: relative;
+		width: 100%;
+		height: 90rpx;
+		overflow: visible;
+	}
+
+	.btn {
+		position: absolute;
+		height: 70rpx;
+		line-height: 70rpx;
+		padding: 0 20rpx;
+		top: 50%;
+		transform: translateY(-50%);
+		background-color: #00aaff;
+		color: #fff;
+		border: 0 none;
+		border-radius: 25rpx;
+	}
+
+	.btn-first {
+		left: 15rpx;
+	}
+
+	.btn-second {
+		right: 15rpx;
+	}
 </style>

+ 23 - 15
pages/work/record/InfoDetail.uvue

@@ -15,7 +15,7 @@
 		</view>
 
 		<view class="section">
-			<uni-table >
+			<uni-table>
 				<uni-tr class="section-title" v-for="(item,index) in titleList" :key="index">
 					<uni-td class="grid-text">{{item.title1}}</uni-td>
 					<uni-td class="grid-text">{{item.title2}}</uni-td>
@@ -24,13 +24,16 @@
 				<uni-tr class="section-title" v-for="(taskProcess : TaskProcess,index2 : number) in taskProcessList"
 					:key="index2" @click="enterProcess(taskProcess.id)">
 					<uni-td class="grid-text">{{taskProcess.name}}</uni-td>
-					<uni-td class="grid-text my-radius"
-						:class="{
-							'bg-green': taskProcess.state === 'done',
-							'bg-yellow': taskProcess.state === 'doing',
-							'bg-black': taskProcess.state === 'waiting',
-							'bg-red': taskProcess.state === 'error'
-						  }">{{taskProcess.step}}/{{taskProcess.num}}</uni-td>
+					<uni-td class="grid-text">
+						<text :class="{
+							'bg-green bg-text': taskProcess.state === 'done',
+							'bg-yellow bg-text': taskProcess.state === 'doing',
+							'bg-black bg-text': taskProcess.state === 'waiting',
+							'bg-red bg-text': taskProcess.state === 'error'
+						  }">
+							{{taskProcess.step}}/{{taskProcess.num}}
+						</text>
+					</uni-td>
 					<uni-td class="grid-text">
 						<text :class="{
 							'ft-red': taskProcess.state === 'error'
@@ -39,7 +42,7 @@
 				</uni-tr>
 			</uni-table>
 		</view>
-		
+
 	<!-- #ifdef APP -->
 	</scroll-view>
 	<!-- #endif -->
@@ -208,28 +211,33 @@
 		border-radius: 10rpx;
 	}
 
+	.bg-text {
+		width: 100rpx;
+		min-width: 80rpx;
+		border-radius: 10rpx;
+		text-align: center;
+	}
+
 	.bg-green {
 		background-color: seagreen;
 		color: #fff;
 	}
-	
+
 	.bg-yellow {
 		background-color: yellow;
 	}
-	
+
 	.bg-black {
 		background-color: #102a43;
 		color: #fff;
 	}
-	
+
 	.bg-red {
 		background-color: red;
 		color: #fff;
 	}
-	
+
 	.ft-red {
 		color: red;
 	}
-
-	
 </style>

+ 2 - 0
pages/work/record/InfoList.uvue

@@ -134,6 +134,8 @@
 		flex-direction: column;
 		margin-bottom: 20rpx;
 		margin-top: 40rpx;
+		margin-left: 20rpx;
+		margin-right: 20rpx;
 	}
 
 	.download-card .view {

+ 87 - 13
pages/work/record/RecordList.uvue

@@ -1,12 +1,19 @@
 <template>
-	<scroll-view scroll-y class="container">
-		<view class="banner">
-			<text class="banner-title">拍照点</text>
-		</view>
-		<view class="record-card flex-row">
-			<uni-tag class="tag-circle" v-for="(tag,index) in 6" :key="index" :text="tag+''" size="medium" type="primary" circle
-				@click="tabsClick(tag)"></uni-tag>
+	<view class="record-card flex-row">
+		<!-- <uni-tag class="tag-circle" v-for="(tag,index) in 6" :key="index" :text="tag+''" size="medium" type="primary" circle
+			@click="tabsClick(tag)"></uni-tag> -->
+		<view class="tag-circle" v-for="(tag,index) in maxcount" :key="index" @click="tabsClick(tag)">
+			<text class="circle" :class="{
+							'bg-green': tag<=2,
+							'bg-yellow': tag%3 === 0,
+							'bg-red': tag%2 === 0,
+							'bg-black': tag>=4
+						  }">{{tag}}</text>
 		</view>
+	</view>
+	<!-- #ifdef APP -->
+	<scroll-view style="flex:1">
+	<!-- #endif -->
 		<view class="record-card" v-for="(item, index) in records" :key="index" v-show="current == item.sxid as number">
 			<view class="header-row">
 				<text class="label">序号:</text>
@@ -68,7 +75,19 @@
 			</view>
 
 		</view>
+
+		<view class="info-row btn-panel">
+			<button class="btn btn-first" @click="tabsClick(current-1)" v-if="current > 1">
+				前一项
+			</button>
+			<button class="btn btn-second" @click="tabsClick(current+1)" v-if="current < maxcount">
+				下一项
+			</button>
+		</view>
+
+	<!-- #ifdef APP -->
 	</scroll-view>
+	<!-- #endif -->
 </template>
 
 <script setup>
@@ -90,7 +109,8 @@
 		imgname : string[],
 		urlpdt : string[]
 	}
-
+	//检查项目最大数量
+	var maxcount = 5
 	var current = ref(1)
 	var records = ref<Record[]>([]);
 	var closeTags = ref([true, true, true, true, true, true, true])
@@ -292,15 +312,69 @@
 		flex-direction: row;
 	}
 
-	.tag-circle {
-		width: 40rpx;
-		margin: 0 10rpx;
-	}
-	
 	.demo-view-label {
 		text-align: center;
 		color: #102a43;
 		line-height: 1.5;
 		margin-top: 5rpx;
 	}
+
+	.tag-circle {
+		width: 50rpx;
+		margin: 0 10rpx;
+		border-radius: 50rpx;
+	}
+
+	.circle {
+		height: 50rpx;
+		width: 50rpx;
+		background-color: #004a99;
+		text-align: center;
+		color: #fff;
+		line-height: 50rpx;
+	}
+
+	.bg-green {
+		background-color: seagreen;
+	}
+
+	.bg-yellow {
+		background-color: yellow;
+	}
+
+	.bg-black {
+		background-color: #102a43;
+	}
+
+	.bg-red {
+		background-color: red;
+	}
+
+	.btn-panel {
+		position: relative;
+		width: 100%;
+		height: 90rpx;
+		overflow: visible;
+	}
+
+	.btn {
+		position: absolute;
+		height: 70rpx;
+		line-height: 70rpx;
+		padding: 0 20rpx;
+		top: 50%;
+		transform: translateY(-50%);
+		background-color: #00aaff;
+		color: #fff;
+		border: 0 none;
+		border-radius: 25rpx;
+	}
+
+	.btn-first {
+		left: 15rpx;
+	}
+
+	.btn-second {
+		right: 15rpx;
+	}
 </style>

+ 178 - 95
pages/work/report/InspectionList.uvue

@@ -1,56 +1,49 @@
 <template>
-	<scroll-view class="container">
-		<!-- Banner -->
-		<view class="banner">
-			<text class="banner-title">检验记录</text>
-		</view>
-		<view class="card-list" style="flex-direction: row;">
-			<uni-tag
-			      v-for="(tag,index) in 6" :key="index"
-									:text="tag+''"	
-									 size="medium"
-									 type="primary"
-									circle								
-									@click="tabsClick(tag)"
-									style="width:40rpx;margin: 0 10rpx;"	  
-								></uni-tag> 
+	<view class="record-card flex-row">
+		<!-- <uni-tag class="tag-circle" v-for="(tag,index) in 6" :key="index" :text="tag+''" size="medium" type="primary" circle
+			@click="tabsClick(tag)"></uni-tag> -->
+		<view class="tag-circle" v-for="(tag,index) in maxcount" :key="index" @click="tabsClick(tag)">
+			<text class="circle" :class="{
+							'bg-green': tag<=2,
+							'bg-yellow': tag%3 === 0,
+							'bg-red': tag%2 === 0,
+							'bg-black': tag>=4
+						  }">{{tag}}</text>
 		</view>
+	</view>
+	<!-- #ifdef APP -->
+	<scroll-view style="flex:1">
+	<!-- #endif -->
+<!-- 		<view class="card-list" style="flex-direction: row;">
+			<uni-tag v-for="(tag,index) in 6" :key="index" :text="tag+''" size="medium" type="primary" circle
+				@click="tabsClick(tag)" style="width:40rpx;margin: 0 10rpx;"></uni-tag>
+		</view> -->
 
 		<!-- 检查报告卡片列表 -->
 		<view v-if="reportList.length" class="card-list">
-			<view class="card" v-for="item in reportList" :key="item.id"  v-show="current == item.id as number">				
-				<view class="divider"></view>
+			<view class="card" v-for="item in reportList" :key="item.id" v-show="current == item.id as number">
 				<view class="info-row">
 					<text class="label">序号</text>
 					<view class="value">
 						<uni-number-box v-model="item.id" disabled></uni-number-box>
-					</view>	
+					</view>
 				</view>
 				<view class="info-row">
 					<text class="label">产品码</text>
 					<view class="value">
-						<input
-						    v-model="item.productcode"						    
-							disabled
-						  ></input>
+						<input v-model="item.productcode" disabled></input>
 					</view>
 				</view>
 				<view class="info-row">
 					<text class="label">检测项目</text>
 					<view class="value">
-						<input
-						    v-model="item.invname"						   
-							disabled
-						  ></input>
+						<input v-model="item.invname" disabled></input>
 					</view>
 				</view>
 				<view class="info-row">
 					<text class="label">性质</text>
 					<view class="value">
-						<input
-						    v-model="item.model"						    
-							disabled
-						  ></input>
+						<input v-model="item.model" disabled></input>
 					</view>
 				</view>
 				<view class="info-row">
@@ -73,23 +66,20 @@
 				<view class="info-row">
 					<text class="label">实测值小</text>
 					<view class="value">
-						<uni-number-box v-model="item.minactval" :min="0" ></uni-number-box>
+						<uni-number-box v-model="item.minactval" :min="0"></uni-number-box>
 					</view>
 				</view>
 				<view class="info-row">
 					<text class="label">实测值大</text>
 					<view class="value">
-						<uni-number-box v-model="item.maxactval" :min="0" ></uni-number-box>
-					</view>	
+						<uni-number-box v-model="item.maxactval" :min="0"></uni-number-box>
+					</view>
 				</view>
 				<view class="info-row">
-					<text class="label">结论</text>	
+					<text class="label">结论</text>
 					<view class="value">
-						<input
-						    v-model="item.conclusion"
-						    class="surround uni-input"
-						  ></input>
-					</view>	
+						<input v-model="item.conclusion" class="surround uni-input"></input>
+					</view>
 				</view>
 			</view>
 		</view>
@@ -99,64 +89,75 @@
 			<image src="/static/image/empty.png" class="empty-img" />
 			<text class="empty-text">暂无检查检验记录</text>
 		</view>
+		
+		<view class="info-row btn-panel">
+			<button class="btn btn-first" @click="tabsClick(current-1)" v-if="current > 1">
+				前一项
+			</button>
+			<button class="btn btn-second" @click="tabsClick(current+1)" v-if="current < maxcount">
+				下一项
+			</button>
+		</view>
+	<!-- #ifdef APP -->
 	</scroll-view>
+	<!-- #endif -->
 </template>
 
 <script setup>
 	import {
 		ref
 	} from 'vue'
-	
+
 	type Report = {
-		id: number,
-		productcode: string,
-		invname: string,
-		model: string,
-		upperlimit: number,
-		lowerlimit: number, 
-		minactval: number,
-		maxactval: number,
-		conclusion: string,			
-		applyDate: string,
-		reportDate: string
+		id : number,
+		productcode : string,
+		invname : string,
+		model : string,
+		upperlimit : number,
+		lowerlimit : number,
+		minactval : number,
+		maxactval : number,
+		conclusion : string,
+		applyDate : string,
+		reportDate : string
 	}
-		
+	//检查项目最大数量
+	var maxcount = 5
 	var current = ref(1)
-	var reportList = ref<Report[]>([]) 
-    
+	var reportList = ref<Report[]>([])
+
 	const initReportList = [{
-			id: 1,
-			productcode:"YH0001",
-			invname: '装配间隙',
-			model: '定量',
-			upperlimit:0.5,
-			lowerlimit:0, 
-			minactval:0,
-			maxactval:0,
-			conclusion:'',			
-			applyDate: '2025-08-20 09:15',
-			reportDate: '2025-08-20 17:30'
-		},
-		{
-			id: 2,
-			productcode:"YH0001",
-			invname: '装配间隙',
-			model: '定量',
-			upperlimit:0.5,
-			lowerlimit:0, 
-			minactval:0,
-			maxactval:0,
-			conclusion:'',
-			applyDate: '2025-08-28 10:00',
-			reportDate: '2025-08-28 13:40'
-		}
+		id: 1,
+		productcode: "YH0001",
+		invname: '装配间隙',
+		model: '定量',
+		upperlimit: 0.5,
+		lowerlimit: 0,
+		minactval: 0,
+		maxactval: 0,
+		conclusion: '',
+		applyDate: '2025-08-20 09:15',
+		reportDate: '2025-08-20 17:30'
+	},
+	{
+		id: 2,
+		productcode: "YH0001",
+		invname: '装配间隙',
+		model: '定量',
+		upperlimit: 0.5,
+		lowerlimit: 0,
+		minactval: 0,
+		maxactval: 0,
+		conclusion: '',
+		applyDate: '2025-08-28 10:00',
+		reportDate: '2025-08-28 13:40'
+	}
 	] as Report[];
-	reportList.value = initReportList.filter(item=>item.id == current.value)
-	const tabsClick = (obj:number) =>{
+	reportList.value = initReportList.filter(item => item.id == current.value)
+	const tabsClick = (obj : number) => {
 		current.value = obj
-		reportList.value = initReportList.filter(item=>item.id == current.value)		
+		reportList.value = initReportList.filter(item => item.id == current.value)
 	}
-    
 </script>
 
 <style scoped>
@@ -181,9 +182,9 @@
 		font-weight: bold;
 		text-align: center;
 	}
-	
-	.box{
-		width: 20px; 
+
+	.box {
+		width: 20px;
 		background-color: #909193;
 		border-radius: 7.5px;
 	}
@@ -192,13 +193,16 @@
 		display: flex;
 		flex-direction: column;
 	}
-	.card-list > .card {
+
+	.card-list>.card {
 		margin-bottom: 15px;
 	}
+
 	/* #ifndef APP-ANDROID */
-	.card-list > .card:last-child {
+	.card-list>.card:last-child {
 		margin-bottom: 0;
 	}
+
 	/* #endif */
 
 	.card {
@@ -233,13 +237,13 @@
 		align-items: center;
 		padding: 10px;
 	}
-	
+
 	.label {
 		font-weight: bold;
 		color: #102a43;
 		min-width: 75px;
 	}
-	
+
 	.value {
 		flex: 1;
 		white-space: nowrap;
@@ -260,14 +264,17 @@
 		display: flex;
 		flex-direction: column;
 	}
-	.card-info > .card-info-item {
+
+	.card-info>.card-info-item {
 		margin-bottom: 10rpx;
 	}
+
 	/* #ifndef APP-ANDROID */
-	.card-info > .card-info-item:last-child {
+	.card-info>.card-info-item:last-child {
 		margin-bottom: 0;
 	}
-    /* #endif */
+
+	/* #endif */
 	.btn-group {
 		display: flex;
 		justify-content: flex-end;
@@ -283,14 +290,15 @@
 		box-shadow: 0 6rpx 16rpx rgba(91, 134, 229, 0.3);
 		/* #ifndef APP-ANDROID */
 		transition: all 0.2s ease-in-out;
-		 /* #endif */
+		/* #endif */
 	}
 
-/* #ifndef APP-ANDROID */
+	/* #ifndef APP-ANDROID */
 	.main-btn:active {
 		opacity: 0.9;
 		transform: scale(0.98);
 	}
+
 	/* #endif */
 
 	.empty-card {
@@ -313,8 +321,83 @@
 		font-size: 30rpx;
 		color: #999;
 	}
+
 	.surround {
 		border: 1px solid silver;
 		border-radius: 10rpx;
 	}
+	
+	.record-card {
+		background: #ffffff;
+		border-radius: 20rpx;
+		padding: 24rpx 32rpx;
+		box-shadow: 0 8rpx 15rpx rgba(0, 43, 92, 0.1);
+		display: flex;
+		flex-direction: column;
+		margin-bottom: 20rpx;
+		margin-top: 20rpx;
+	}
+	
+	.flex-row {
+		flex-direction: row;
+	}
+	
+	.tag-circle {
+		width: 50rpx;
+		margin: 0 10rpx;
+		border-radius: 50rpx;
+	}
+	
+	.circle {
+		height: 50rpx;
+		width: 50rpx;
+		background-color: #004a99;
+		text-align: center;
+		color: #fff;
+		line-height: 50rpx;
+	}
+	
+	.bg-green {
+		background-color: seagreen;
+	}
+	
+	.bg-yellow {
+		background-color: yellow;
+	}
+	
+	.bg-black {
+		background-color: #102a43;
+	}
+	
+	.bg-red {
+		background-color: red;
+	}
+	
+	.btn-panel {
+		position: relative;
+		width: 100%;
+		height: 90rpx;
+		overflow: visible;
+	}
+	
+	.btn {
+		position: absolute;
+		height: 70rpx;
+		line-height: 70rpx;
+		padding: 0 20rpx;
+		top: 50%;
+		transform: translateY(-50%);
+		background-color: #00aaff;
+		color: #fff;
+		border: 0 none;
+		border-radius: 25rpx;
+	}
+	
+	.btn-first {
+		left: 15rpx;
+	}
+	
+	.btn-second {
+		right: 15rpx;
+	}
 </style>

BIN
static/newLogo.png