Browse Source

前端代收、代储合同

gjy 2 years ago
parent
commit
99bd86359c

+ 2 - 2
pages/erpbusiness/add_quality_testing.vue

@@ -326,8 +326,8 @@
 					<input v-model='gridList.qualityPriceDeduction' :disabled='disabled1' @input='deductionchange'
 						placeholder="自动获取,不可编辑" name="input" type="digit"></input>
 				</view>
-			</view> -->
-			
+			</view>
+			 -->
 			<view v-show="gridList.type == '潮粮'&&utils.getCurrectRoles('acquisitionQuality.initial')&&typevalue==1"
 				class="c-row">
 				<view class="title">净重单价(元/公斤)</view>

+ 334 - 0
pages/task/audit/daichu_details.vue

@@ -163,6 +163,75 @@
 					</view>
 			</u-form-item>
 		</u-form>
+		<u-form style='margin-top:10px;' ref="uForm">
+			<view class="form_top">流程</view>
+			<view class="content2">
+			<view v-for="(item,index) in auditList" :key='index' class="audit">
+				<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
+					<view class="left">
+						<view class="item1">
+							<view class="item-content">{{item.operatorTitle}}</view>
+							<view v-if="item.status=='success'" class='status success'>
+								<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
+							</view>
+							<view v-if="item.status=='error'" class='status error'>
+								<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
+							</view>
+							<view v-if="item.status=='question'" class='status question'>
+								<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
+							</view>
+						</view>
+					</view>
+					<view class="right">
+						<view class="right-item">
+							<view class="item2">
+								<view class="name">{{item.desc}}
+								</view>
+								<!-- <view class='time'>{{item.updateDate}}</view> -->
+								<view v-if="item.status=='success'" class="status success">
+									{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
+										v-if='!item.commonStaffs1&&index!=0'>已审核</text>
+								</view>
+								<view v-if="item.status=='error'" class="status error">
+									{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
+										v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
+								</view>
+								<view v-if="item.status=='question'" class="status question">
+									{{item.commonStaffs1?item.staffscontent:''}}<text
+										v-if='!item.commonStaffs1'>未审核</text>
+								</view>
+								<!-- <view  class="status success">吕波(已审核)</view> -->
+			
+							</view>
+							<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
+								class='time'>
+								{{item.updateDate}}
+							</view>
+						</view>
+						<view v-if='item.auditMind' class="right-content">
+							{{item.auditMind}}
+						</view>
+					</view>
+					<view v-if='item.commonStaffs1' class="right">
+						<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
+						</u-icon>
+					</view>
+				</view>
+				<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
+					<view class='row2'>
+						<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
+							<view class="item-content">
+								<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
+								<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
+							</view>
+							<view class="name">{{item1.staffName}}</view>
+						</view>
+					</view>
+				</view>
+				<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
+			</view>
+			</view>
+		</u-form>
 		<view style='padding:10px;' class='flex bottom-btn'>
 			<u-button v-if='list.approveStatus||isSHowBtn' @click='reject' type="error" class="btn1" hover-class='none'>
 				驳回
@@ -222,6 +291,7 @@
 				isAdd: true,
 				imgShow: false,
 				url: "",
+				auditList:[],
 				everyCheck: ''
 			}
 		},
@@ -268,6 +338,136 @@
 								}
 							}
 						})
+						// 审核流程
+							this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
+								businessCode: 'DAICHU-CONTRACT-APPROVE',
+								tmpCompId: uni.getStorageSync('pcUserInfo').compId
+							}).then(res1 => {
+								this.$api.doRequest('get', '/commonUser/getHis', {
+									workflowId: res1.data.data[0].id,
+									businessKey: this.id,
+									// branch:that.list.jointVentureParties?that.list.jointVentureParties:'zt'
+								}).then(response => {
+									uni.hideLoading()
+									for (let i = 0; i < response.data.data.length; i++) {
+										this.$set(response.data.data[i], 'status', 'question')
+										// console.log(response.data.data[i].workflowHistoricTasks,i)
+										if (response.data.data[i].commonStaffs) {
+											response.data.data[i].showflow = false
+											response.data.data[i].operatorTitle = response.data.data[i]
+												.desc.substring(0, 2)
+											response.data.data[i].operatorName = response.data.data[i]
+												.desc
+											response.data.data[i].staffscontent = '共' + response.data
+												.data[i].commonStaffs.length + '人,当前审核' + response.data
+												.data[i].workflowHistoricTasks.length + '人'
+											if (response.data.data[i].workflowHistoricTasks && response
+												.data.data[i].workflowHistoricTasks.length > 0) {
+												if (response.data.data[i].workflowHistoricTasks
+													.length != response.data.data[i].commonStaffs
+													.length) {
+													// response.data.data[i].status='question'
+													this.$set(response.data.data[i], 'status',
+														'question')
+												} else {
+													this.$set(response.data.data[i], 'status',
+														'success')
+													// response.data.data[i].status='success'
+												}
+												response.data.data[i].workflowlen = response.data.data[
+													i].workflowHistoricTasks.length
+												var workflowdata = response.data.data[i]
+													.workflowHistoricTasks
+												var staffsdata = response.data.data[i].commonStaffs
+												for (let q = 0; q < staffsdata.length; q++) {
+													staffsdata[q].status = false
+													staffsdata[q].staffTitle = staffsdata[q].staffName
+													for (let k = 0; k < workflowdata.length; k++) {
+														if (staffsdata[q].staffId == workflowdata[k]
+															.operatorId) {
+															staffsdata[q].status = true
+														}
+													}
+												}
+											}
+											response.data.data[i].commonStaffs1 = response.data.data[i]
+												.commonStaffs
+										} else {
+											if (response.data.data[i].workflowHistoricTasks && response
+												.data.data[i].workflowHistoricTasks.length > 0) {
+												var len = response.data.data[i].workflowHistoricTasks
+													.length - 1
+												if (response.data.data[i].workflowHistoricTasks[len]
+													.approved) {
+													this.$set(response.data.data[i], 'status',
+														'success')
+												} else {
+													this.$set(response.data.data[i], 'status', 'error')
+												}
+												response.data.data[i].operatorTitle = response.data
+													.data[i].workflowHistoricTasks[len].operatorName
+													.substring(response.data.data[i]
+														.workflowHistoricTasks[0].operatorName.length -
+														2)
+												response.data.data[i].operatorName = response.data
+													.data[i].workflowHistoricTasks[len].operatorName
+												var time = new Date(response.data.data[i]
+														.workflowHistoricTasks[len].claimTime)
+													.getTime()
+												response.data.data[i].updateDate = this.$u.timeFormat(
+													time, 'mm.dd hh:MM')
+												response.data.data[i].auditMind = response.data.data[i]
+													.workflowHistoricTasks[len].auditMind
+											} else {
+												this.$set(response.data.data[i], 'status', 'question')
+												// response.data.data[i].status='question'
+												if (response.data.data[i].desc == '总经理助理审核') {
+													response.data.data[i].operatorTitle = '总助'
+												} else if (response.data.data[i].desc == '杜大光审核') {
+													response.data.data[i].operatorTitle = '大光'
+												} else {
+													response.data.data[i].operatorTitle = response.data
+														.data[i].desc.substring(0, 2)
+												}
+												response.data.data[i].operatorName = response.data
+													.data[i].desc
+												var time1 = new Date(response.data.data[i].updateDate)
+													.getTime()
+												response.data.data[i].updateDate = this.$u.timeFormat(
+													time1, 'mm.dd hh:MM')
+												response.data.data[i].auditMind = ''
+											}
+										}
+									}
+									console.log(response.data.data)
+									for(let i = 0 ;i<response.data.data.length;i++){
+										if(response.data.data[i].status == "error"){
+											this.auditCheck = "error"
+											break;
+										}else if(response.data.data[i].status == "question"){
+											this.auditCheck = "question"
+											break;
+										}else{ 
+											this.auditCheck = "success"
+										}
+									}
+									this.auditList = response.data.data
+									var time2 = new Date(this.list.createDate).getTime()
+									var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
+									this.auditList.unshift({
+										operatorTitle: this.list.creater.substring(0, 2),
+										operatorName: this.list.creater,
+										updateDate: time3,
+										auditMind: '',
+										desc: '发起申请',
+										showflow: false,
+										commonStaffs1: null,
+										commonStaffs: null,
+										workflowHistoricTasks: [],
+										status: 'success'
+									})
+								})
+							})
 					}
 				})
 			},
@@ -640,4 +840,138 @@
 			text-align: right;
 		}
 	}
+	.content2 {
+		background: white;
+		margin: 20rpx 0;
+		border-radius: 20rpx;
+		padding: 20rpx;
+	
+		.row {
+			display: flex;
+	
+			.left {
+				display: flex;
+				align-items: center;
+	
+				.item1 {
+					position: relative;
+	
+					.item-content {
+						background: #617AE0;
+						width: 44px;
+						height: 44px;
+						border-radius: 22px;
+						line-height: 44px;
+						text-align: center;
+						font-size: 15px;
+						color: #fff;
+					}
+	
+					.status {
+						position: absolute;
+						border-radius: 50%;
+						padding: 0px 2px;
+						right: -3px;
+						bottom: -3px;
+						background: #fff;
+					}
+	
+					.status.success {
+						border: 1px solid rgb(60, 156, 255);
+					}
+	
+					.status.error {
+						border: 1px solid rgb(245, 108, 108);
+					}
+	
+					.status.question {
+						border: 1px solid #f9ae3d;
+					}
+				}
+	
+			}
+	
+			.right {
+				width: 80%;
+				// color: #B0B1B5;
+				margin-top: 10px;
+	
+				.right-content {
+					background: #F2F3F7;
+					margin-left: 10px;
+					margin-top: 10px;
+					padding: 10px;
+					border-radius: 5px;
+					color: #B0B1B5;
+				}
+	
+				.right-item {
+					display: flex;
+					justify-content: space-between;
+	
+					.time {
+						color: #999;
+					}
+	
+					.item2 {
+						margin-left: 20rpx;
+						margin-top: -7px;
+	
+						.name {
+							font-size: 28rpx;
+							font-weight: 800;
+							margin-bottom: 4px;
+						}
+	
+						.status.success {
+							color: #6CC48C;
+						}
+	
+						.status.error {
+							color: rgb(245, 108, 108);
+						}
+	
+						.status.question {
+							color: #f9ae3d;
+						}
+					}
+				}
+			}
+		}
+	
+		.row2 {
+			display: flex;
+	
+			.item-content {
+				background: #22C572;
+				width: 30px;
+				height: 30px;
+				border-radius: 50%;
+				line-height: 30px;
+				text-align: center;
+				font-size: 12px;
+				color: #fff;
+				padding: 0 2px;
+				margin: 0 auto;
+			}
+	
+			.status {
+				position: absolute;
+				top: 0;
+				right: 0;
+			}
+		}
+	
+		.row-line {
+			width: 1px;
+			height: 30px;
+			background: #F2F2F2;
+			margin: 10rpx 50rpx;
+	
+		}
+	
+		.audit {
+			margin-top: 20rpx;
+		}
+	}
 </style>

+ 401 - 12
pages/task/audit/daishou_details.vue

@@ -110,19 +110,105 @@
 				<textarea class='textarea' v-model="list.remarks" input-align="right" placeholder="" disabled />
 			</u-form-item>
 			<u-form-item label-width='260' label="附件">
-				<!-- <view class="textCss">
-					<upload class="upload" ref="upload" :action="action" :max-size="maxSize" :max-count="1"
-						:file-list="imglist" :size-type="['compressed']" @on-success="getImgUrl" @on-error="onError"
-						@on-remove="onRemove" @on-uploaded="isAdd = true" :before-upload="filterFileType"
-						@on-progress="onProgress" :deletable="false" :showProgress = "false"></upload>
-				</view> -->
-				<view v-for='item in imglist'>
-					<view @click='shadeshow(item)'>
-						<image style='width: 200rpx;height: 200rpx;' :src="item" mode=""></image>
-					</view>
+				<view class="form_top">共{{imglist.length}}个附件</view>
+				<view v-if='imglist.length>0'>
+					<view style="justify-content: space-between;" class='flex' v-for='item in imglist'>
+						<view class="img_item">
+							<view class="" style="width: 16%;">
+								<image
+									v-if="item.type == 'pdf'"
+									class="imgsign" src="../../../static/img/oa_office/pdf3.png"
+									mode=""></image>
+								<image v-else-if="item.type == 'xls'||item.type == 'xlsx'"
+									 class="imgsign" src="../../../static/img/oa_office/excle3.png"
+									mode=""></image>
+								<image v-else-if="item.type == 'doc'||item.type == 'docx'"
+									 class="imgsign" src="../../../static/img/oa_office/word3.png"
+									mode=""></image>
+								<image v-else  class="imgsign" :src="item.appendixPath" mode="">
+								</image>
+							</view>
+							<view class="" style="width: 70%;">
+								<view class="char_css">{{item.appendixName}}</view>
+								<view class="img_size">{{item.appendixSize}}</view>
+							</view>
+							<view style="color: #22C572;" class="img_dowload" @click="openDocument(item)">
+								下载
+							</view>
+						</view>
+						</view>
 				</view>
 			</u-form-item>
 		</u-form>
+		<u-form style='margin-top:10px;' ref="uForm">
+			<view class="form_top">流程</view>
+			<view class="content2">
+			<view v-for="(item,index) in auditList" :key='index' class="audit">
+				<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
+					<view class="left">
+						<view class="item1">
+							<view class="item-content">{{item.operatorTitle}}</view>
+							<view v-if="item.status=='success'" class='status success'>
+								<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
+							</view>
+							<view v-if="item.status=='error'" class='status error'>
+								<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
+							</view>
+							<view v-if="item.status=='question'" class='status question'>
+								<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
+							</view>
+						</view>
+					</view>
+					<view class="right">
+						<view class="right-item">
+							<view class="item2">
+								<view class="name">{{item.desc}}
+								</view>
+								<!-- <view class='time'>{{item.updateDate}}</view> -->
+								<view v-if="item.status=='success'" class="status success">
+									{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
+										v-if='!item.commonStaffs1&&index!=0'>已审核</text>
+								</view>
+								<view v-if="item.status=='error'" class="status error">
+									{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
+										v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
+								</view>
+								<view v-if="item.status=='question'" class="status question">
+									{{item.commonStaffs1?item.staffscontent:''}}<text
+										v-if='!item.commonStaffs1'>未审核</text>
+								</view>
+								<!-- <view  class="status success">吕波(已审核)</view> -->
+			
+							</view>
+							<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
+								class='time'>
+								{{item.updateDate}}
+							</view>
+						</view>
+						<view v-if='item.auditMind' class="right-content">
+							{{item.auditMind}}
+						</view>
+					</view>
+					<view v-if='item.commonStaffs1' class="right">
+						<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
+						</u-icon>
+					</view>
+				</view>
+				<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
+					<view class='row2'>
+						<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
+							<view class="item-content">
+								<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
+								<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
+							</view>
+							<view class="name">{{item1.staffName}}</view>
+						</view>
+					</view>
+				</view>
+				<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
+			</view>
+			</view>
+		</u-form>
 		<view style='padding:10px;' class='flex bottom-btn'>
 			<u-button v-if='list.approveStatus||isSHowBtn' @click='reject' type="error" class="btn1" hover-class='none'>
 				驳回
@@ -176,6 +262,7 @@
 				auditMind: '',
 				show: false,
 				title: '',
+				auditList:[],
 				contractNo: "",
 				action: this.$uploadUrl,
 				maxSize: 50 * 1024 * 1024, //限制文件大小 50M
@@ -220,10 +307,144 @@
 						this.$api.doRequest('get', '/appendix/query/getFileList', {
 							appendixIds: that.list.addressUrl
 						}).then(res1 => {
-							for (var i = 0; i < res1.data.data.length; i++) {
-								that.imglist.push(res1.data.data[i].appendixPath)
+							that.imglist=res1.data.data
+							for (let i = 0; i < that.imglist.length; i++) {//获取后缀
+								if (that.imglist[i].appendixName) {
+									let index = that.imglist[i].appendixName.lastIndexOf(".") 
+									that.imglist[i].type = that.imglist[i].appendixName.substring(index+1)
+								}
 							}
 						})
+						// 审核流程
+							this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
+								businessCode: 'DAISHOU-CONTRACT-APPROVE',
+								tmpCompId: uni.getStorageSync('pcUserInfo').compId
+							}).then(res1 => {
+								this.$api.doRequest('get', '/commonUser/getHis', {
+									workflowId: res1.data.data[0].id,
+									businessKey: this.id,
+									// branch:that.list.jointVentureParties?that.list.jointVentureParties:'zt'
+								}).then(response => {
+									uni.hideLoading()
+									for (let i = 0; i < response.data.data.length; i++) {
+										this.$set(response.data.data[i], 'status', 'question')
+										// console.log(response.data.data[i].workflowHistoricTasks,i)
+										if (response.data.data[i].commonStaffs) {
+											response.data.data[i].showflow = false
+											response.data.data[i].operatorTitle = response.data.data[i]
+												.desc.substring(0, 2)
+											response.data.data[i].operatorName = response.data.data[i]
+												.desc
+											response.data.data[i].staffscontent = '共' + response.data
+												.data[i].commonStaffs.length + '人,当前审核' + response.data
+												.data[i].workflowHistoricTasks.length + '人'
+											if (response.data.data[i].workflowHistoricTasks && response
+												.data.data[i].workflowHistoricTasks.length > 0) {
+												if (response.data.data[i].workflowHistoricTasks
+													.length != response.data.data[i].commonStaffs
+													.length) {
+													// response.data.data[i].status='question'
+													this.$set(response.data.data[i], 'status',
+														'question')
+												} else {
+													this.$set(response.data.data[i], 'status',
+														'success')
+													// response.data.data[i].status='success'
+												}
+												response.data.data[i].workflowlen = response.data.data[
+													i].workflowHistoricTasks.length
+												var workflowdata = response.data.data[i]
+													.workflowHistoricTasks
+												var staffsdata = response.data.data[i].commonStaffs
+												for (let q = 0; q < staffsdata.length; q++) {
+													staffsdata[q].status = false
+													staffsdata[q].staffTitle = staffsdata[q].staffName
+													for (let k = 0; k < workflowdata.length; k++) {
+														if (staffsdata[q].staffId == workflowdata[k]
+															.operatorId) {
+															staffsdata[q].status = true
+														}
+													}
+												}
+											}
+											response.data.data[i].commonStaffs1 = response.data.data[i]
+												.commonStaffs
+										} else {
+											if (response.data.data[i].workflowHistoricTasks && response
+												.data.data[i].workflowHistoricTasks.length > 0) {
+												var len = response.data.data[i].workflowHistoricTasks
+													.length - 1
+												if (response.data.data[i].workflowHistoricTasks[len]
+													.approved) {
+													this.$set(response.data.data[i], 'status',
+														'success')
+												} else {
+													this.$set(response.data.data[i], 'status', 'error')
+												}
+												response.data.data[i].operatorTitle = response.data
+													.data[i].workflowHistoricTasks[len].operatorName
+													.substring(response.data.data[i]
+														.workflowHistoricTasks[0].operatorName.length -
+														2)
+												response.data.data[i].operatorName = response.data
+													.data[i].workflowHistoricTasks[len].operatorName
+												var time = new Date(response.data.data[i]
+														.workflowHistoricTasks[len].claimTime)
+													.getTime()
+												response.data.data[i].updateDate = this.$u.timeFormat(
+													time, 'mm.dd hh:MM')
+												response.data.data[i].auditMind = response.data.data[i]
+													.workflowHistoricTasks[len].auditMind
+											} else {
+												this.$set(response.data.data[i], 'status', 'question')
+												// response.data.data[i].status='question'
+												if (response.data.data[i].desc == '总经理助理审核') {
+													response.data.data[i].operatorTitle = '总助'
+												} else if (response.data.data[i].desc == '杜大光审核') {
+													response.data.data[i].operatorTitle = '大光'
+												} else {
+													response.data.data[i].operatorTitle = response.data
+														.data[i].desc.substring(0, 2)
+												}
+												response.data.data[i].operatorName = response.data
+													.data[i].desc
+												var time1 = new Date(response.data.data[i].updateDate)
+													.getTime()
+												response.data.data[i].updateDate = this.$u.timeFormat(
+													time1, 'mm.dd hh:MM')
+												response.data.data[i].auditMind = ''
+											}
+										}
+									}
+									console.log(response.data.data)
+									for(let i = 0 ;i<response.data.data.length;i++){
+										if(response.data.data[i].status == "error"){
+											this.auditCheck = "error"
+											break;
+										}else if(response.data.data[i].status == "question"){
+											this.auditCheck = "question"
+											break;
+										}else{ 
+											this.auditCheck = "success"
+										}
+									}
+									this.auditList = response.data.data
+									var time2 = new Date(this.list.createDate).getTime()
+									var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
+									this.auditList.unshift({
+										operatorTitle: this.list.creater.substring(0, 2),
+										operatorName: this.list.creater,
+										updateDate: time3,
+										auditMind: '',
+										desc: '发起申请',
+										showflow: false,
+										commonStaffs1: null,
+										commonStaffs: null,
+										workflowHistoricTasks: [],
+										status: 'success'
+									})
+								})
+							})
 					}
 				})
 			},
@@ -562,4 +783,172 @@
 			color: #AFB3BF;
 		}
 	}
+	.img_item {
+		display: flex;
+		width: 100%;
+		margin: 10px 0;
+		padding: 0 10rpx;
+		.imgsign{
+			width: 25px;
+			height: 25px;
+			margin-top: 6px;
+		}
+		.char_css {
+			font-size: 28rpx;
+			font-weight: 600;
+			display: -webkit-box;
+			overflow: hidden;
+			/*! autoprefixer: off; */
+			-webkit-box-orient: vertical;
+			-webkit-line-clamp: 1;
+			-webkit-box-orient: vertical;
+			text-overflow: ellipsis;
+			word-break: break-all;
+		}
+		.img_size{
+			color: #B0B3BF;
+			font-size: 12px;
+			margin-top: 5px;
+		}
+	
+		.img_dowload {
+			width: 14%;
+			color: #22C572;
+			text-align: right;
+		}
+	}
+	.content2 {
+		background: white;
+		margin: 20rpx 0;
+		border-radius: 20rpx;
+		padding: 20rpx;
+	
+		.row {
+			display: flex;
+	
+			.left {
+				display: flex;
+				align-items: center;
+	
+				.item1 {
+					position: relative;
+	
+					.item-content {
+						background: #617AE0;
+						width: 44px;
+						height: 44px;
+						border-radius: 22px;
+						line-height: 44px;
+						text-align: center;
+						font-size: 15px;
+						color: #fff;
+					}
+	
+					.status {
+						position: absolute;
+						border-radius: 50%;
+						padding: 0px 2px;
+						right: -3px;
+						bottom: -3px;
+						background: #fff;
+					}
+	
+					.status.success {
+						border: 1px solid rgb(60, 156, 255);
+					}
+	
+					.status.error {
+						border: 1px solid rgb(245, 108, 108);
+					}
+	
+					.status.question {
+						border: 1px solid #f9ae3d;
+					}
+				}
+	
+			}
+	
+			.right {
+				width: 80%;
+				// color: #B0B1B5;
+				margin-top: 10px;
+	
+				.right-content {
+					background: #F2F3F7;
+					margin-left: 10px;
+					margin-top: 10px;
+					padding: 10px;
+					border-radius: 5px;
+					color: #B0B1B5;
+				}
+	
+				.right-item {
+					display: flex;
+					justify-content: space-between;
+	
+					.time {
+						color: #999;
+					}
+	
+					.item2 {
+						margin-left: 20rpx;
+						margin-top: -7px;
+	
+						.name {
+							font-size: 28rpx;
+							font-weight: 800;
+							margin-bottom: 4px;
+						}
+	
+						.status.success {
+							color: #6CC48C;
+						}
+	
+						.status.error {
+							color: rgb(245, 108, 108);
+						}
+	
+						.status.question {
+							color: #f9ae3d;
+						}
+					}
+				}
+			}
+		}
+	
+		.row2 {
+			display: flex;
+	
+			.item-content {
+				background: #22C572;
+				width: 30px;
+				height: 30px;
+				border-radius: 50%;
+				line-height: 30px;
+				text-align: center;
+				font-size: 12px;
+				color: #fff;
+				padding: 0 2px;
+				margin: 0 auto;
+			}
+	
+			.status {
+				position: absolute;
+				top: 0;
+				right: 0;
+			}
+		}
+	
+		.row-line {
+			width: 1px;
+			height: 30px;
+			background: #F2F2F2;
+			margin: 10rpx 50rpx;
+	
+		}
+	
+		.audit {
+			margin-top: 20rpx;
+		}
+	}
 </style>