2021-02-07 21:21:12 +08:00

334 lines
9.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- 差旅费报销 -->
<template>
<view class="travel-expense" v-show="isShow">
<view class="travel-top">
<h3>{{ExpenseBill.PROINST_NAME}}</h3>
<div class="detail-top-base">
<view class="span24">
<text class="text-title">申请人</text>
<text >{{ExpenseBill.STAFF_NAME}}</text>
</view>
<text>{{$util.cutDate(ExpenseBill.HIGHWAYPROINST_CREATEDATE)}}</text>
</div>
<view class="detail-top-box">
<view class="detail-top-bottom ">
<view class="uni-flex span24" style="align-items: center;">
<view class="detail-title">
<i class="ico ico-ndbz"></i><text class="text-title">报销金额 </text>
</view>
<text style="color:#ec8538;">{{$util.fmoney(ExpenseBill.PAYMENT_LOWER,2)}}</text>
</view>
<view class="uni-flex span24 mt8" style="align-items: center;">
<view class="detail-title">
<i class="ico ico-bm"></i><text class="text-title">报销部门</text>
</view>
<text>{{ExpenseBill.DEPARTMENT_NAME}}</text>
</view>
<view class="detail-flex mt8" style="align-items: center;">
<div class="detail-title">
<i class="ico ico-ccry"></i>出差人员:
</div>
<text>
{{ExpenseBill.BUSINESS_PERSON}}
</text>
</view>
<view class="detail-flex mt8" >
<view class="detail-title">
<i class="ico ico-ccsy"></i>出差事由:
</view>
<text >
{{ExpenseBill.BUSINESS_REASON}}
</text>
</view>
</view>
<view class="detail-middle-box">
<view class="attachment" v-if="ExpenseBill.ImgList && ExpenseBill.ImgList.length>0">
<div class="detail-title">
<i class="ico ico-fj"></i>附件图片
</div>
<div class="imgBox">
<image v-for="(arr,i) in ExpenseBill.ImgList" :key="i" :src="arr.IMAGE_URL" @tap="showImg(arr,i)" mode="aspectFill"/>
</div>
</view>
</view>
</view>
<view class="button-box" v-if="ExpenseBill.USER_ID == users.UserId">
<span @tap="showPop(4000)"><image src="/static/images/yj-btn.png" mode="aspectFit"></image> 移交 </span>
<span @tap="showPop(2000)"><image src="/static/images/sh-btn.png" mode="aspectFit"></image> 审核 </span>
<span @tap="showPop(3000)" v-if="ExpenseBill.CAN_REJECT===1"><image src="/static/images/bh-btn.png" mode="aspectFit"></image> 驳回</span>
</view>
</view>
<view class="base-info">
<div class="uni-list-cell uni-collapse">
<div class="cat-box uni-list-cell-navigate" :class="cardShow ? ' uni-navigate-bottom' : 'uni-navigate-right'" @tap="cardShow =!cardShow">
<b>行程详情</b>
</div>
<div class="process-box uni-collapse-content" :class="cardShow ? 'uni-active' : ''" v-show="cardShow">
<travelCard v-for="item in ExpenseBill.BillDetailList" :key="item.EXPENSEDETAIL_ID" :item="item" />
</div>
</div>
</view>
<view class="base-info" v-if="ExpenseBill.OtherCostList && ExpenseBill.OtherCostList.length>0">
<div class="uni-list-cell uni-collapse">
<div class="cat-box uni-list-cell-navigate" :class="cardShow2 ? ' uni-navigate-bottom' : 'uni-navigate-right'" @tap="cardShow2 =!cardShow2">
<b>其他费用</b>
</div>
<div class="process-box uni-collapse-content" :class="cardShow2 ? 'uni-active' : ''" v-show="cardShow2">
<view class="trip-detail uni-flex" v-for="item in ExpenseBill.OtherCostList" :key="item.EXPENSEDETAIL_ID" style="align-items: center;" >
<span style="flex:1;">{{item.OTHER_COST}}</span>
<view class="uni-flex" style="flex:1;align-items: center;">
<i v-if="item.OTHERBILL_COUNT!==''" class="ico ico-pj"></i>
<span style="padding-left:8upx;">{{item.OTHERBILL_COUNT}}</span>
<text class="span24"></text>
</view>
<view v-if="item.OTHERBILL_COUNT!==''" style="flex:1;color: #ec8538;text-align: right;"><text>{{item.OTHERBILL_AMOUNT}}</text></view>
</view>
</div>
</div>
</view>
<!-- 审批流程 -->
<view class="base-info" v-if="ExpenseBill.RejectList && ExpenseBill.RejectList.length>0">
<div class="uni-list-cell uni-collapse">
<div class="cat-box uni-list-cell-navigate" :class="cardShow4 ? ' uni-navigate-bottom' : 'uni-navigate-right'" @tap="cardShow4 =!cardShow4">
<b>驳回意见</b>
</div>
<div class="process-box uni-collapse-content" :class="cardShow4 ? 'uni-active' : ''" v-show="cardShow4">
<processUnit v-for="item in ExpenseBill.RejectList" :item="item" :key="item.APPROVED_DATE" :approveType='0' />
</div>
</div>
</view>
<view class="base-info" v-if="ExpenseBill.ApprovedList && ExpenseBill.ApprovedList.length > 0">
<div class="uni-list-cell uni-collapse">
<div class="cat-box uni-list-cell-navigate" :class="cardShow3 ? ' uni-navigate-bottom' : 'uni-navigate-right'" @tap="cardShow3 =!cardShow3">
<b>审批流程</b>
</div>
<div class="process-box uni-collapse-content" :class="cardShow3 ? 'uni-active' : ''" v-show="cardShow3">
<processUnit v-for="item in ExpenseBill.ApprovedList" :item="item" :key="item.APPROVED_DATE" :approveType='1' />
</div>
</div>
</view>
</view>
</template>
<script>
import {mapGetters} from 'vuex'
import filesUnit from '@/components/filesComponent/fileUnit.vue'
import processUnit from '@/components/auditingProcess/item.vue'
import travelCard from '@/components/travelCard/travelCard.vue'
export default {
data() {
return {
imageUrls:[],
doUser: false,
isShow:false,
ExpenseBill:{},
showPopupMiddle: false,
popType: 'middle',
cardShow: true, // 控制折叠面板
cardShow2: true,
cardShow3: true,
cardShow4: true,
isExamine: false, // 按钮显示隐藏
};
},
components: {
processUnit,
travelCard
},
computed: {
...mapGetters({'users':'getUser'}),
imgArr(){
let arr = []
if(this.ExpenseBill.ImgList){
this.ExpenseBill.ImgList.map(v => {
arr.push(v.IMAGE_URL)
})
}
return arr
},
},
methods: {
// 图片预览
showImg(src,index) {
uni.previewImage({
urls: this.imageUrls,
current: index,
loop: true,
indicator: 'number'
});
},
// 关联详情点击事件
clickGetSubscribefee() {
this.popType = 'middle';
this.showPopupMiddle = true;
},
// 关联详情隐藏
hidePopup() {
this.showPopupMiddle = false;
},
showPop(type) {
let _this = this
let url = ''
switch (type) {
case 4000:
url = '/pages/auditingPop/transfer?businessType=5000&PROINST_ID='+_this.ExpenseBill.HIGHWAYPROINST_ID+'&NOWACTINST_ID='+_this.ExpenseBill.NOWACTINST_ID
break;
case 2000:
url = '/pages/auditingPop/toExamine?businessType=5000&PROINST_ID='+_this.ExpenseBill.HIGHWAYPROINST_ID+'&NOWACTINST_ID='+_this.ExpenseBill.NOWACTINST_ID+'&ApproName='+_this.ExpenseBill.ACTINST_NAME+'&NeedApproved='+_this.ExpenseBill.NeedApproved
break;
case 3000:
url = '/pages/auditingPop/reject?businessType=5000&PROINST_ID='+_this.ExpenseBill.HIGHWAYPROINST_ID+'&NOWACTINST_ID='+_this.ExpenseBill.NOWACTINST_ID
break;
}
this.$util.toNextRoute('navigateTo', url)
},
// 获取页面数据
getData(_id) {
let _this =this
this.$request.$get('GetFinanceExpenseDetail',{
action_data: _this.users.UserId,
HighWayProinstId: _id, //业务内码
}).then(res => {
if(!res.ResultCode ||res.ResultCode!='100'){
_this.isShow = false
}
let _data = res.Data
this.ExpenseBill = _data || {};
let arr = []
if(_data.ImgList){
_data.ImgList.map(v => {
arr.push(v.IMAGE_URL)
})
}
_this.imageUrls = arr
if (_this.ExpenseBill.USER_ID == _this.users.UserId) { // 该用户是当前详情处理人
_this.doUser = true
}
_this.$forceUpdate()
uni.hideLoading()
setTimeout(function(){
_this.isShow = true
_this.isLoading = false
},500)
})
},
},
onLoad(option) {
uni.showLoading({
title:'正在加载'
})
this.isLoading =true
this.getData(option.id)
},
onShow() {
let _this = this
uni.$on('5000', function (data){
if(data) {
uni.showLoading({
title:'正在加载'
})
_this.isShow = false
_this.isLoading = true
_this.getData(_this.ExpenseBill.HIGHWAYPROINST_ID)
}
});
},
onUnload() {
this.$util.addUserBehavior()
uni.$off('5000');
},
onHide() {
}
}
</script>
<style scoped>
@import url("/common/css/expensesTop.css");
.ico-big::before {
width: 40upx;
height: 40upx;
margin-right: 0;
vertical-align: top;
}
.ico-rs1::before{
vertical-align: unset;
}
.ico-big2::before {
width: 60upx;
height: 60upx;
}
.uni-list-cell:after {
height: 0;
}
.base-info {
margin-top: 30upx;
}
.trip-detail {
border: 1px solid rgb(234, 234, 234);
box-shadow: 0px 1px 8px rgb(234, 234, 234);
border-radius: 7px;
margin-bottom: 20upx;
margin-left: 30upx;
margin-right: 30upx;
padding: 20upx 24upx 20upx 24upx;
}
.trip-subsidies {
display: flex;
justify-content: space-between;
margin-top: 16upx;
/* margin-bottom: 20upx; */
border-top: 1upx dashed rgb(234, 234, 234);
}
.trip-subsidies span {
font-size: 24upx;
}
</style>