123 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
<template>
 | 
						|
  <view class="audit-process">
 | 
						|
		<u-popup
 | 
						|
			:show="show"
 | 
						|
			mode="right"
 | 
						|
			@close="close"
 | 
						|
			:closeable="true">
 | 
						|
			<view class="title">
 | 
						|
				审批详情
 | 
						|
			</view>
 | 
						|
			<view class="wrap">
 | 
						|
				<u-steps v-for="(item, index) in dataSource" :key="index" :current="currentStep(item)" direction="column">
 | 
						|
					<u-steps-item v-for="(i, k) in subStep(item)" :key="k" :title="i.NAME">
 | 
						|
						<view slot="brief" class="brief">
 | 
						|
							<view class="row">
 | 
						|
								<text>审批人:</text>
 | 
						|
								<text>{{i.Nav_ApproveUser.NAME}}</text>
 | 
						|
							</view>
 | 
						|
							<view class="row">
 | 
						|
								<text>审批时间:</text>
 | 
						|
								<text>{{i.NODE_APPROVE_TIME === "0001-01-01 00:00:00" ? '' : i.NODE_APPROVE_TIME}}</text>
 | 
						|
							</view>
 | 
						|
							<view class="row">
 | 
						|
								<text>审批结论:</text>
 | 
						|
								<text>{{auditResult(i)}}</text>
 | 
						|
							</view>
 | 
						|
							<view class="row" v-if="i.CONTEXT">
 | 
						|
								<text>审批意见:</text>
 | 
						|
								<text>{{i.CONTEXT || ''}}</text>
 | 
						|
							</view>
 | 
						|
						</view>
 | 
						|
					</u-steps-item>
 | 
						|
					<u-line color="#2979ff" v-if="index !== dataSource.length-1" style="margin: 5px 0px;"></u-line>
 | 
						|
				</u-steps>
 | 
						|
			</view>
 | 
						|
		</u-popup>
 | 
						|
  </view>
 | 
						|
</template>
 | 
						|
<script>
 | 
						|
  export default {
 | 
						|
    props: {
 | 
						|
      show: {
 | 
						|
        type: Boolean,
 | 
						|
        default: false
 | 
						|
      },
 | 
						|
			dataSource: {
 | 
						|
				type: Array,
 | 
						|
				default() {
 | 
						|
					return []
 | 
						|
				}
 | 
						|
			}
 | 
						|
    },
 | 
						|
		data() {
 | 
						|
			return {
 | 
						|
				// currentStep: 0
 | 
						|
			}
 | 
						|
		},
 | 
						|
    methods: {
 | 
						|
			close() {
 | 
						|
				this.$emit('close')
 | 
						|
			},
 | 
						|
			auditResult(e) {
 | 
						|
				let result
 | 
						|
				if (e.NODE_APPROVE_STATUS === 10) {
 | 
						|
					result='同意';
 | 
						|
				} else if (e.NODE_APPROVE_STATUS === 20) {
 | 
						|
					result = '驳回';
 | 
						|
				}
 | 
						|
				return result
 | 
						|
			},
 | 
						|
			currentStep(e) {
 | 
						|
				const res = this.subStep(e)
 | 
						|
				let cur = res.length
 | 
						|
				res.forEach((o, k) => {
 | 
						|
					if (o.IS_CURRENT) {
 | 
						|
						cur = k
 | 
						|
					}
 | 
						|
				})
 | 
						|
				return cur
 | 
						|
			},
 | 
						|
			subStep(val) {
 | 
						|
				return val.Nav_ApproveDetails?.slice().sort((a, b) => a.NUM - b.NUM)
 | 
						|
			}
 | 
						|
    },
 | 
						|
		watch: {
 | 
						|
 | 
						|
		},
 | 
						|
		computed: {
 | 
						|
 | 
						|
		}
 | 
						|
  }
 | 
						|
</script>
 | 
						|
<style scoped>
 | 
						|
	.audit-process >>> .u-popup__content {
 | 
						|
		height: 100%;
 | 
						|
		overflow-y: auto;
 | 
						|
	}
 | 
						|
	.title {
 | 
						|
		height: 48px;
 | 
						|
		line-height: 48px;
 | 
						|
		font-weight: bold;
 | 
						|
		padding-left: 15px;
 | 
						|
		border-bottom: 1px solid #e5e5e5;
 | 
						|
		/* margin-bottom: 15px; */
 | 
						|
	}
 | 
						|
	.wrap {
 | 
						|
		min-width: 200px;
 | 
						|
		max-width: 400px;
 | 
						|
		padding-left: 10px;
 | 
						|
		padding-right: 10px;
 | 
						|
		padding-top: 15px;
 | 
						|
		height: 100%;
 | 
						|
		overflow-y: auto;
 | 
						|
	}
 | 
						|
	.brief {
 | 
						|
		font-size: 12px;
 | 
						|
		margin-top: 10px;
 | 
						|
	}
 | 
						|
	.brief .row {
 | 
						|
		margin-bottom: 6px;
 | 
						|
	}
 | 
						|
</style>
 |