Browse Source

新增环境质控任务详情

zyj 1 year ago
parent
commit
020a52c038

+ 10 - 1
pages.json

@@ -105,6 +105,15 @@
             }
 
         }
+        ,{
+            "path" : "pages/ypczk/zkTask/zkTaskDetail/djhjTaskDetail",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "环境质控任务详情",
+                "enablePullDownRefresh": false
+            }
+            
+        }
     ],
 	"globalStyle": {
 		"navigationBarTextStyle": "white",
@@ -115,7 +124,7 @@
 	"uniIdRouter": {},
 	"tabBar": {
 		"color": "rgba(134, 144, 156, 1)",
-		"selectedColor": "rgba(196, 196, 196, 0)",
+		"selectedColor": "rgba(190, 163, 117, 1)",
 		"borderStyle": "black",
 		"backgroundColor": "#ffffff",
 		"list": [

+ 26 - 8
pages/ypczk/zkTask/choosePrescription.vue

@@ -15,12 +15,30 @@
 			</view>
 		</view>
 		<uni-card v-for="(item,index) in pageData.cfInfo" class="cfInfo" @click="chooseCf(item)">
-			<text class="cfInfo_title">处方编号<text class="cfInfo_text">{{item.cfbm}}</text></text>
-			<text class="cfInfo_title">患者姓名<text class="cfInfo_text">{{item.hzxm}}</text></text>
-			<text class="cfInfo_title">医疗机构<text class="cfInfo_text">{{item.yljg}}</text></text>
-			<text class="cfInfo_title">开方日期<text class="cfInfo_text">{{item.kfrq}}</text></text>
-			<text class="cfInfo_title">贴数<text class="cfInfo_text">{{item.ts}}</text></text>
-			<text class="cfInfo_title">处方内容<text class="cfInfo_text">{{item.cfnr}}</text></text>
+			<view class="cfInfo_title">
+				<view class="cfInfo_text">处方编号</view>
+				<view class="cfInfo_text">{{item.cfbm}}</view>
+			</view>
+			<view class="cfInfo_title">
+				<view class="cfInfo_text">患者姓名</view>
+				<view class="cfInfo_text">{{item.hzxm}}</view>
+			</view>
+			<view class="cfInfo_title">
+				<view class="cfInfo_text">医疗机构</view>
+				<view class="cfInfo_text">{{item.yljg}}</view>
+			</view>
+			<view class="cfInfo_title">
+				<view class="cfInfo_text">开方日期</view>
+				<view class="cfInfo_text">{{item.kfrq}}</view>
+			</view>
+			<view class="cfInfo_title">
+				<view class="cfInfo_text">贴数</view>
+				<view class="cfInfo_text">{{item.ts}}</view>
+			</view>
+			<view class="cfInfo_title">
+				<view class="cfInfo_text">处方内容</view>
+				<view class="cfInfo_text">{{item.cfnr}}</view>
+			</view>
 		</uni-card>
 		<!-- 对话框 -->
 		<uni-popup ref="chooseDialog" type="dialog">
@@ -46,7 +64,7 @@ const pageData=reactive({
 			yljg:'机构1',
 			kfrq:'11111',
 			ts:'1',
-			cfnr:'12,13'
+			cfnr:'熟附片 3g、丹参 10g、大枣9g、海藻 6g、蜜炙甘草9...'
 		},
 		{
 			cfbm:'22222222',
@@ -54,7 +72,7 @@ const pageData=reactive({
 			yljg:'机构2',
 			kfrq:'22222',
 			ts:'2',
-			cfnr:'12,13'
+			cfnr:'熟附片 3g、丹参 10g、大枣9g、海藻 6g、蜜炙甘草9...'
 		},
 		{
 			cfbm:'333333333',

+ 27 - 6
pages/ypczk/zkTask/djTask.vue

@@ -22,10 +22,22 @@
 		</view>
 		<!-- 检查结果 -->
 		<uni-card padding="0" spacing="0" v-for="(item,index) in pageData.djList" class="djList">
-			<text class="djList_title">检查项目<text class="djList_text">{{item.item}}</text></text>
-			<text class="djList_title">检查内容<text class="djList_text">{{item.content}}</text></text>
-			<text class="djList_title">检查结果<text class="djList_text">{{item.result}}</text></text>
-			<text class="djList_title" v-if="item.result=='不合格'">原因<text class="djList_text">{{item.reason}}</text></text>
+			<view class="djList_title">
+				<view class="djList_text">检查项目</view>
+				<view class="djList_righttext">{{item.item}}</view>
+			</view>
+			<view class="djList_title">
+				<view class="djList_text">检查内容</view>
+				<view class="djList_righttext">{{item.content}}</view>
+			</view>
+			<view class="djList_title">
+				<view class="djList_text">检查结果</view>
+				<view class="djList_righttext">{{item.result}}</view>
+			</view>
+			<view class="djList_title" v-if="item.result=='不合格'">
+				<view class="djList_text">原因</view>
+				<view class="djList_righttext">{{item.reason}}</view>
+			</view>
 			<view class="button_group">
 				<view class="bhg_button" @click="bhgCheck()">不合格</view>
 				<view class="hg_button" @click="hgCheck()">合格</view>
@@ -36,12 +48,12 @@
 			<uni-card>
 				<uni-section title="图片上传" type="line"></uni-section>
 				<view class="img_upload">
-					<uni-file-picker limit="4" :v-model="pageData.imageList" @select="selectImg" @delete="deleteImg"></uni-file-picker>
+					<uni-file-picker :v-model="pageData.imageList" @select="selectImg" @delete="deleteImg"></uni-file-picker>
 				</view>
 			</uni-card>
 		</view>
 		<!-- 按钮 -->
-		<view class="operator_button">
+		<view class="operator_button" v-if="pageData.operatorStatus=='add'">
 			<button class="pass_button" @click="pass">一键通过</button>
 			<!-- 如果还有数据按钮显示为“下一个”,数据全部加载完毕显示为“完成” -->
 			<view class="finish_button_grop">
@@ -59,8 +71,11 @@
 
 <script setup>
 import { ref,reactive } from "vue";
+import {onLoad,onShow,onUnload,onPullDownRefresh} from "@dcloudio/uni-app";
 	
 const pageData=reactive({
+	// 操作状态,是编辑/查看
+	operatorStatus:'',
 	djList:[
 		{
 			item:'检查项目1',
@@ -139,6 +154,12 @@ const next=()=>{
 const finish=()=>{
 	console.log("完成")
 }
+
+onLoad((type)=>{
+	if(type.status!=null){
+		pageData.operatorStatus=type.status
+	}
+})
 </script>
 
 <style lang="scss" scoped>

+ 20 - 4
pages/ypczk/zkTask/djhjTask.vue

@@ -7,10 +7,26 @@
 		</view>
 		<!-- 检查结果 -->
 		<uni-card padding="0" spacing="0" v-for="(item,index) in pageData.djhjList" class="djhjList">
-			<text class="djhjList_title">检查项目<text class="djhjList_text">{{item.item}}</text></text>
-			<text class="djhjList_title">检查方式<text class="djhjList_text">{{item.mean}}</text></text>
-			<text class="djhjList_title">检查内容<text class="djhjList_text">{{item.content}}</text></text>
-			<text class="djhjList_title">检查结果<text class="djhjList_text">{{item.result}}</text></text>				<text class="djhjList_title" v-if="item.result=='不合格'">原因<text class="djhjList_text">{{item.reason}}</text></text>
+			<view class="djhjList_title">
+				<view class="djhjList_text">检查项目</view>
+				<view class="djhjList_righttext">{{item.item}}</view>
+			</view>
+			<view class="djhjList_title">
+				<view class="djhjList_text">检查方式</view>
+				<view class="djhjList_righttext">{{item.mean}}</view>
+			</view>
+			<view class="djhjList_title">
+				<view class="djhjList_text">检查内容</view>
+				<view class="djhjList_righttext">{{item.content}}</view>
+			</view>
+			<view class="djhjList_title">
+				<view class="djhjList_text">检查结果</view>
+				<view :class="item.result=='不合格'? 'djhjList_redtext' : 'djhjList_righttext'">{{item.result}}</view>
+			</view>
+			<view class="djhjList_title" v-if="item.result=='不合格'">
+				<view class="djhjList_text">原因</view>
+				<view class="djhjList_righttext">{{item.reason}}</view>
+			</view>
 			<view class="button_group">
 				<view class="bhg_button" @click="bhgCheck()">不合格</view>
 				<view class="hg_button" @click="hgCheck()">合格</view>

+ 46 - 31
pages/ypczk/zkTask/index.scss

@@ -103,6 +103,7 @@
 			display: flex;
 			justify-content: flex-end;
 			align-items: center;
+			padding-left: 60%;
 			.reset_button{
 				font-size: 12px;
 				font-weight: 400;
@@ -121,11 +122,10 @@
 	}
 	.cfInfo{
 		.cfInfo_title{
-			display: inline-block;
-			width: 100%;
+			display: flex;
+			padding: 8rpx 0;
 			.cfInfo_text{
-				position: absolute;
-				right: 38rpx;
+				flex: 1;
 			}
 		}
 	}
@@ -234,28 +234,28 @@
 	}
 	.djList{
 		.djList_title{
-			display: inline-block;
-			width: 100%;
-			font-size: 14px;
-			font-weight: 400;
-			letter-spacing: 0.5px;
-			line-height: 22px;
-			color: rgba(102, 102, 102, 1);
-			text-align: left;
-			vertical-align: top;
-			padding: 20rpx 0 20rpx 30rpx;
+			display: flex;
+			padding: 10rpx 0;
 			.djList_text{
-				text-align: right;
-				position: absolute;
-				right: 38rpx;
+				padding-left: 20rpx;
 				font-size: 14px;
 				font-weight: 400;
 				letter-spacing: 0.5px;
 				line-height: 22px;
 				color: rgba(53, 53, 53, 1);
-				text-align: right;
 				vertical-align: top;
 			}
+			.djList_righttext{
+				padding-right: 20rpx;
+				padding-left: 30rpx;
+				flex: 1;
+				text-align: right;
+				font-size: 14px;
+				font-weight: 400;
+				letter-spacing: 0.5px;
+				line-height: 22px;
+				color: rgba(53, 53, 53, 1);
+			}
 		}
 		.button_group{
 			display: flex;
@@ -337,27 +337,39 @@
 	}
 	.djhjList{
 		.djhjList_title{
-			display: inline-block;
-			width: 100%;
-			font-size: 14px;
-			font-weight: 400;
-			letter-spacing: 0.5px;
-			line-height: 22px;
-			color: rgba(102, 102, 102, 1);
-			text-align: left;
-			vertical-align: top;
-			padding: 20rpx 0 20rpx 30rpx;
+			display: flex;
+			padding: 10rpx 0;
 			.djhjList_text{
-				position: absolute;
-				right: 38rpx;
+				padding-left: 20rpx;
 				font-size: 14px;
 				font-weight: 400;
 				letter-spacing: 0.5px;
 				line-height: 22px;
 				color: rgba(53, 53, 53, 1);
-				text-align: right;
 				vertical-align: top;
 			}
+			.djhjList_righttext{
+				padding-right: 20rpx;
+				padding-left: 30rpx;
+				flex: 1;
+				text-align: right;
+				font-size: 14px;
+				font-weight: 400;
+				letter-spacing: 0.5px;
+				line-height: 22px;
+				color: rgba(53, 53, 53, 1);
+			}
+			.djhjList_redtext{
+				padding-right: 20rpx;
+				padding-left: 30rpx;
+				flex: 1;
+				text-align: right;
+				font-size: 14px;
+				font-weight: 400;
+				letter-spacing: 0.5px;
+				line-height: 22px;
+				color: rgba(231, 31, 31, 1);
+			}
 		}
 		.button_group{
 			display: flex;
@@ -388,6 +400,9 @@
 		}
 	}
 	.image_upload{
+		display: flex;
+		align-items: center;
+		overflow-x: auto;
 		::v-deep .uni-section .uni-section-header__decoration {
 		    background-color: rgba(190, 163, 117, 1);
 		}

+ 6 - 3
pages/ypczk/zkTask/zkTask.vue

@@ -148,6 +148,9 @@ const addTask=(type)=>{
 	}else if(type=='dj'){
 		// 新增代煎
 		console.log("新增代煎")
+		uni.navigateTo({
+			url:"/pages/ypczk/zkTask/djTask?status=add"
+		})
 	}
 }
 
@@ -162,9 +165,9 @@ const seeMore =(type)=>{
 	}else if(type=='dj'){
 		// 代煎跳转
 		console.log("代煎跳转")
-		// uni.navigateTo({
-		// 	url:''
-		// })
+		uni.navigateTo({
+			url:'/pages/ypczk/zkTask/zkTaskDetail/djTaskDetail'
+		})
 	}
 }
 

+ 48 - 8
pages/ypczk/zkTask/zkTaskDetail/djTaskDetail.vue

@@ -2,18 +2,37 @@
 	<view class="djTaskDetail">
 		<uni-card>
 			<!-- 代煎作业质控标题 -->
-			<uni-section title="代煎作业质控" type="line">
+			<uni-section title="代煎作业质控" type="line" class="djTaskDetail_title">
 				<template v-slot:right>
-					<view>不合格数<view>1</view></view>
+					<view class="right_title">不合格数<view class="right_text">1</view></view>
 				</template>
 			</uni-section>
 			<!-- 代煎数 -->
-			<view>
-				<view>代配7贴:<view></view></view>
-				<view>代配14贴:<view></view></view>
+			<view class="djNum">
+				<view class="djNum_title">代配7贴:<view class="djNum_text">1/10</view></view>
+				<view class="djNum_title">代配14贴:<view class="djNum_text">2/10</view></view>
 			</view>
 			<!-- 代煎表格 -->
-			<view></view>
+			<view>
+				<uni-table class="djDetail_table">
+					<!-- 表头行 -->
+					<uni-tr>
+						<uni-th align="center" width="155rpx">处方编号</uni-th>
+						<uni-th align="center" width="150rpx">贴数(贴)</uni-th>
+						<uni-th align="center" width="150rpx">检查项</uni-th>
+						<uni-th align="center" width="155rpx">不合格项</uni-th>
+					</uni-tr>
+					<!-- 表格数据行 -->
+					<uni-tr v-for="(item, index) in pageData.djTaskList" :key="index">
+						<uni-td align="center">{{item.cfbh}}</uni-td>
+						<uni-td align="center">{{item.ts}}</uni-td>
+						<uni-td align="center">{{item.jcx}}</uni-td>
+						<uni-td align="center">{{item.bhgx}}
+							<uni-icons type="right" @click="toDetail(item)"></uni-icons>
+						</uni-td>
+					</uni-tr>
+				</uni-table>
+			</view>
 		</uni-card>
 	</view>
 </template>
@@ -21,10 +40,31 @@
 <script setup>
 import { reactive } from "vue";
 const pageData=reactive({
-	
+	djTaskList:[
+		{
+			cfbh:'111111',
+			ts:'1',
+			jcx:'1',
+			bhgx:'1'
+		},
+		{
+			cfbh:'222222',
+			ts:'2',
+			jcx:'2',
+			bhgx:'2'
+		}
+	]
 })
+
+// 跳转详情界面
+const toDetail=(e)=>{
+	console.log(e)
+	uni.navigateTo({
+		url:"/pages/ypczk/zkTask/djTask?status=get"
+	})
+}
 </script>
 
 <style lang="scss" scoped>
-
+@import './index.scss'
 </style>

+ 88 - 0
pages/ypczk/zkTask/zkTaskDetail/djhjTaskDetail.vue

@@ -0,0 +1,88 @@
+<template>
+	<view class="djhjTaskDetail">
+		<!-- 任务进度 -->
+		<view class="djhjTaskDetail_progress">
+			<text class="djhjTaskDetail_progress_title">任务进度:<text class="djhjTaskDetail_progress_text">4/10</text></text>
+			<text class="djhjTaskDetail_progress_title">不合格数<text class="djhjTaskDetail_progress_text">1</text></text>
+		</view>
+		<!-- 创建人 -->
+		<view class="creator">
+			<text class="creator_title">创建人<text class="creator_text">张星</text></text>
+		</view>
+		<!-- 检查结果 -->
+		<uni-card padding="0" spacing="0" v-for="(item,index) in pageData.djhjList" class="djhjList">
+			<view class="djhjList_title">
+				<view class="djhjList_text">检查项目</view>
+				<view class="djhjList_righttext">{{item.item}}</view>
+			</view>
+			<view class="djhjList_title">
+				<view class="djhjList_text">检查方式</view>
+				<view class="djhjList_righttext">{{item.mean}}</view>
+			</view>
+			<view class="djhjList_title">
+				<view class="djhjList_text">检查内容</view>
+				<view class="djhjList_righttext">{{item.content}}</view>
+			</view>
+			<view class="djhjList_title">
+				<view class="djhjList_text">检查结果</view>
+				<view class="djhjList_righttext" :class="item.result=='不合格'? 'djhjList_redtext' : 'djhjList_righttext'">{{item.result}}</view>
+			</view>
+			<view class="djhjList_title" v-if="item.result=='不合格'">
+				<view class="djhjList_text">原因</view>
+				<view class="djhjList_righttext">{{item.reason}}</view>
+			</view>
+		</uni-card>
+		<!-- 图片上传 -->
+		<view class="image_upload">
+			<uni-card>
+				<uni-section title="图片上传" type="line"></uni-section>
+				<view class="img_upload">
+					<uni-file-picker limit="4" :v-model="pageData.imageList" @select="selectImg" @delete="deleteImg"></uni-file-picker>
+				</view>
+			</uni-card>
+		</view>
+	</view>
+</template>
+
+<script setup>
+import { reactive } from "vue";
+const pageData=reactive({
+	djhjList:[
+		{
+			item:'项目111',
+			mean:'方式1111',
+			content:'内容1111',
+			result:'结果1111',
+			reason:'原因1111'
+		},
+		{
+			item:'项目222',
+			mean:'方式2222',
+			content:'内容2222',
+			result:'结果2222',
+			reason:'原因2222'
+		}
+	],
+	imageList:[]
+})
+
+// 选中图片,将选中的图片添加列表
+const selectImg=(e)=>{
+	console.log(e)
+	e.tempFiles.forEach(item=>{
+		pageData.imageList.push(item)
+	})
+}
+
+// 删除图片,并将其从列表中删除
+const deleteImg=(e)=>{
+	console.log(e)
+	let index=0
+	index = pageData.imageList.indexOf(e.tempFilePaths)
+	pageData.imageList.splice(index, 1)
+}
+</script>
+
+<style lang="scss" scoped>
+@import './index.scss'
+</style>

+ 122 - 0
pages/ypczk/zkTask/zkTaskDetail/index.scss

@@ -0,0 +1,122 @@
+// 代煎质控任务详情
+.djTaskDetail{
+	background-color: rgba(235, 236, 237, 1);
+	.djTaskDetail_title{
+		.right_title{
+			display: flex;
+			font-size: 17px;
+			font-weight: 400;
+			letter-spacing: 0px;
+			line-height: 24.62px;
+			color: rgba(53, 53, 53, 1);
+			.right_text{
+				padding-left: 10rpx;
+				font-size: 17px;
+				font-weight: 400;
+				letter-spacing: 0px;
+				line-height: NaNpx;
+				color: rgba(190, 163, 117, 1);
+			}
+		}
+	}
+	.djNum{
+		display: flex;
+		justify-content: space-between;
+		border-top: 0.5px solid rgba(235, 237, 240, 1);
+		.djNum_title{
+			display: flex;
+			justify-content: space-between;
+			padding-top: 28rpx;
+			font-size: 15px;
+			color: rgba(50, 50, 51, 1);
+			.djNum_text{
+				display: flex;
+				color: rgba(190, 163, 117, 1);
+			}
+		}
+	}
+	.djDetail_table{
+		padding-top: 15rpx;
+		.uni-table-tr:first-child{
+			background: rgba(242, 243, 245, 1); 
+		}
+		.uni-table-th{
+			font-size: 12px;
+		}
+		.uni-table-td{
+			font-size: 12px;
+		}
+	}
+}
+
+// 环境质控任务详情
+.djhjTaskDetail{
+	.djhjTaskDetail_progress{
+		display: flex;
+		justify-content: space-between;
+		padding: 10rpx 20rpx 0;
+		.djhjTaskDetail_progress_title{
+			color: rgba(50, 50, 51, 1);
+			padding-right: 10rpx;
+			.djhjTaskDetail_progress_text{
+				padding-left: 8rpx;
+				color: rgba(190, 163, 117, 1);
+			}
+		}
+	}
+	.creator{
+		padding: 20rpx 20rpx 0;
+		.creator_title{
+			color: rgba(50, 50, 51, 1);
+			.creator_text{
+				padding-left: 70rpx;
+			}
+		}
+	}
+	.djhjList{
+		.djhjList_title{
+			display: flex;
+			padding: 10rpx 0;
+			.djhjList_text{
+				padding-left: 20rpx;
+				font-size: 14px;
+				font-weight: 400;
+				letter-spacing: 0.5px;
+				line-height: 22px;
+				color: rgba(53, 53, 53, 1);
+				vertical-align: top;
+			}
+			.djhjList_righttext{
+				padding-right: 20rpx;
+				padding-left: 30rpx;
+				flex: 1;
+				text-align: right;
+				font-size: 14px;
+				font-weight: 400;
+				letter-spacing: 0.5px;
+				line-height: 22px;
+				color: rgba(53, 53, 53, 1);
+			}
+			.djhjList_redtext{
+				padding-right: 20rpx;
+				padding-left: 30rpx;
+				flex: 1;
+				text-align: right;
+				font-size: 14px;
+				font-weight: 400;
+				letter-spacing: 0.5px;
+				line-height: 22px;
+				color: rgba(231, 31, 31, 1);
+			}
+		}
+	}
+	.image_upload{
+		::v-deep .uni-section .uni-section-header__decoration {
+		    background-color: rgba(190, 163, 117, 1);
+		}
+		.img_upload{
+			border-top: 0.5px solid rgba(235, 237, 240, 1);
+			padding-top: 20rpx;
+		}
+	}
+}