115 lines
2.2 KiB
Vue
115 lines
2.2 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">
|
||
<text>审批意见:</text>
|
||
<text>{{i.CONTEXT || ''}}</text>
|
||
</view>
|
||
</view>
|
||
</u-steps-item>
|
||
</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>
|
||
.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;
|
||
}
|
||
.brief {
|
||
font-size: 12px;
|
||
margin-top: 10px;
|
||
}
|
||
.brief .row {
|
||
margin-bottom: 6px;
|
||
}
|
||
</style>
|