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>
|