task#13641,在调度app的对账初,加一个“查看结算单”按钮
This commit is contained in:
@ -70,7 +70,14 @@ const routes = [
|
||||
meta: {
|
||||
title: '审核完成-详情'
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
path: "/settlementDetail",
|
||||
name: 'settlementDetail',
|
||||
component: () => import('@/views/workOrder/settlementDetail.vue'),
|
||||
meta: {
|
||||
title: '结算单详情'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: "/invoicingNotify",
|
||||
|
@ -39,22 +39,26 @@
|
||||
<span class="titleLeft">结算类型:</span>
|
||||
<span class="content" >{{ orderInfo.settleType?.label }}</span>
|
||||
</div>
|
||||
<div class="item" >
|
||||
<div class="item">
|
||||
<span class="titleLeft">结算方式:</span>
|
||||
<span class="content" >{{orderInfo.taskSettleType?.label }}</span>
|
||||
<span class="driverPoiBtn" style="margin-left: 8px" @click="viewSettlementDoc">查看结算单</span>
|
||||
</div>
|
||||
<!-- <div class="item" >
|
||||
<span class="titleLeft">结算方式:</span>
|
||||
<div class="content" style="width: calc(100% - 84px);display: flex;justify-content: space-between;line-height: 27px" >
|
||||
<span>{{orderInfo.taskSettleType?.label}}</span>
|
||||
<!-- <span>包含公里数:15</span>-->
|
||||
<!-- <span>超出单价:6</span>-->
|
||||
</div>
|
||||
</div>
|
||||
<span>{{orderInfo.taskSettleType?.label}}</span> <span class="driverPoiBtn" @click="checkPhoto">查看照片</span>
|
||||
</div>
|
||||
</div>-->
|
||||
<div class="item">
|
||||
<span class="titleLeft">扣除责任险费:</span>
|
||||
<span class="content">{{orderInfo.policyAmount}} {{orderInfo.cutInsuranceAmount}}</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="leftTitle fontColor">工单照片:</span><span class="rightContent">
|
||||
<span class="leftTitle fontColor">工单照片:</span>
|
||||
<span class="rightContent">
|
||||
<span class="driverPoiBtn" @click="checkPhoto">查看照片</span>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="supplierData common" v-show="!auditFormShow">
|
||||
@ -210,7 +214,8 @@
|
||||
<div class="title" style="margin-bottom: 8px"> 备注:{{orderInfo.supplierRemark}}</div>
|
||||
<div class="title" style="margin-bottom: 8px"> 本次补充说明:</div>
|
||||
<div style="display: flex;margin-bottom: 5px">
|
||||
<img v-for="(item,index) in supplierPhotoList" :key="index" class="supplierImg" :src="item.url" @click="delSupplierPhoto(item)">
|
||||
<!-- @click="delSupplierPhoto(item) -->
|
||||
<img v-for="(item,index) in supplierPhotoList" :key="index" class="supplierImg" :src="item.url" @click="viewHandle(item)">
|
||||
</div>
|
||||
<div style="display: flex" >
|
||||
<van-uploader
|
||||
@ -226,7 +231,6 @@
|
||||
</table>
|
||||
</div>
|
||||
<van-dialog v-model="show" title="确定删除此照片吗" show-cancel-button @confirm="handleConfirm"></van-dialog>
|
||||
<!-- <two-common-btn v-show="auditFormShow" class="btn" title1="提交" title2="确定审核" @submitClick1="save" @submitClick="save" />-->
|
||||
<div class="btn" v-show="auditFormShow">
|
||||
<button v-if="orderInfo.checkCount < 3" :class="{'submit' : true,'loading' : loading}" @click="noMultipleClicks(save)">提交</button>
|
||||
<button v-if="accountStatus == 2 || accountStatus == 3" :class="{'submit' : true,'loading1' : loading1}" @click="noMultipleClicks(confirmAudit)" >确定审核</button>
|
||||
@ -243,7 +247,6 @@ import {
|
||||
selectRecordPictureList, deleteImage
|
||||
} from "@/api/mine"
|
||||
import { ImagePreview } from "vant";
|
||||
// import TwoCommonBtn from "@/components/twoBtnCommon.vue"
|
||||
export default {
|
||||
name: "accountingView",
|
||||
mixins:[myMixins],
|
||||
@ -383,12 +386,19 @@ export default {
|
||||
},
|
||||
},
|
||||
methods:{
|
||||
viewSettlementDoc(){//查看结算单
|
||||
this.$router.push({
|
||||
name:"settlementDetail",
|
||||
params:{
|
||||
id: this.id, // 参数对象的属性
|
||||
postfix:this.postfix,
|
||||
index:this.activeIndex,
|
||||
queryTime: this.time || this.queryTime
|
||||
}
|
||||
})
|
||||
},
|
||||
checkPhoto(){
|
||||
let isAllowImage = 1
|
||||
console.log("this.orderInfo.userOrderId",this.orderInfo.userOrderId)
|
||||
console.log("this.orderInfo.orderCode",this.orderInfo.orderCode)
|
||||
console.log("this.orderInfo.taskOrderId",this.orderInfo.taskOrderId)
|
||||
console.log("isAllowImage",isAllowImage)
|
||||
let data = {
|
||||
"action": "orderPhoto",
|
||||
"params": {
|
||||
@ -420,8 +430,10 @@ export default {
|
||||
handleFileRead(file) {
|
||||
console.log("file",file)
|
||||
},
|
||||
viewHandle(i){
|
||||
console.log("ii",i)
|
||||
},
|
||||
goback(){
|
||||
// console.log("aaaaa",this.queryTime)
|
||||
this.$router.push({
|
||||
name:"workOrderReconciliation",
|
||||
params:{
|
||||
@ -449,8 +461,7 @@ export default {
|
||||
this.form.supplierBasePrice = dilemmaBasePrice
|
||||
this.form.supplierExtraPrice = 0
|
||||
this.form.supplierSettleAmount = dilemmaBasePrice - (parseFloat(this.form.supplierCustomerAmount) || 0)
|
||||
// console.log("困境案件费用总计",this.form.supplierSettleAmount)
|
||||
}else{
|
||||
}else{
|
||||
let data = await accountRecordCompute( {
|
||||
...this.form,
|
||||
settleType:this.orderInfo.settleType?.code
|
||||
@ -458,12 +469,10 @@ export default {
|
||||
this.form.supplierBasePrice = data.data.basePrice
|
||||
this.form.supplierExtraPrice = data.data.extraPrice
|
||||
this.form.supplierSettleAmount = data.data.totalPrice
|
||||
// console.log("计算",this.form.supplierSettleAmount)
|
||||
}
|
||||
// }
|
||||
if(this.form.cutInsuranceAmount == 1 && this.form.policyState === 0){
|
||||
this.form.supplierSettleAmount = parseFloat(parseFloat(this.form.supplierSettleAmount) - parseFloat(this.form.policyAmount || 0)).toFixed(2)
|
||||
// console.log("有责任险",this.form.supplierSettleAmount)
|
||||
}
|
||||
},
|
||||
async pictureList(){
|
||||
@ -785,16 +794,17 @@ export default {
|
||||
.rightContent{
|
||||
width: calc(100% - 90px);
|
||||
@include fontWeightSize(bold,12px);
|
||||
.driverPoiBtn{
|
||||
display: inline-block;
|
||||
padding: 3px 8px;
|
||||
@include bgFontColor(#FFFFFF,#354D93);
|
||||
opacity: .7;
|
||||
border-radius: 3px;
|
||||
text-align: center;
|
||||
//margin-left: 6px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
}
|
||||
.driverPoiBtn{
|
||||
display: inline-block;
|
||||
padding: 3px 8px;
|
||||
@include bgFontColor(#FFFFFF,#354D93);
|
||||
opacity: .7;
|
||||
border-radius: 3px;
|
||||
text-align: center;
|
||||
//margin-left: 6px;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
img{
|
||||
|
@ -163,7 +163,6 @@ export default {
|
||||
this.postfix=this.$route.params?.postfix;
|
||||
this.index=this.$route.params?.index;
|
||||
this.queryTime = this.$route.params?.queryTime
|
||||
console.log("111111111111",this.$route.params?.queryTime)
|
||||
await this.getDetail()
|
||||
},
|
||||
methods: {
|
||||
|
163
src/views/workOrder/settlementDetail.vue
Normal file
163
src/views/workOrder/settlementDetail.vue
Normal file
@ -0,0 +1,163 @@
|
||||
<template>
|
||||
<div class="wrap">
|
||||
<div class="navBar">
|
||||
<van-nav-bar
|
||||
title="结算单详情"
|
||||
left-arrow
|
||||
left-arrow-color="#FFFFFF"
|
||||
:border="false"
|
||||
:fixed="true"
|
||||
:safe-area-inset-top="true"
|
||||
@click-left="goback"
|
||||
/>
|
||||
</div>
|
||||
<div class="baseInfo common">
|
||||
<div class="title">结算单:</div>
|
||||
<div class="line"></div>
|
||||
<div class="item">
|
||||
<span class="titleLeft">起步价: </span>
|
||||
<span class="content">{{orderInfo.startPrice}}</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="titleLeft">包含公里数:</span>
|
||||
<span class="content" >{{ orderInfo.containMileage }}</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="titleLeft">每公里单价:</span>
|
||||
<span class="content" >{{ orderInfo.unitPrice }}</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="titleLeft">基本总费用:</span>
|
||||
<span class="content" >{{ orderInfo.supplierBasePrice }}</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="titleLeft">路桥费:</span>
|
||||
<span class="content">{{orderInfo.supplierBridgeAmountAb + '+' + orderInfo.supplierBridgeAmountBc + '+' + orderInfo.supplierBridgeAmountCa}} </span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="titleLeft">等候费:</span>
|
||||
<span class="content">{{orderInfo.supplierWaitAmount}} </span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="titleLeft">辅助轮费:</span>
|
||||
<span class="content">{{orderInfo.supplierTyreAmount}} </span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="titleLeft">困境费:</span>
|
||||
<span class="content">{{orderInfo.supplierDilemmaAmount}} </span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="titleLeft">其他费用:</span>
|
||||
<span class="content">{{orderInfo. supplierOtherAmount}} </span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="titleLeft">额外费用总计:</span>
|
||||
<span class="content">{{orderInfo.supplierExtraPrice}} </span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="titleLeft">费用总计:</span>
|
||||
<span class="content">{{orderInfo.supplierSettleAmount}}</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="titleLeft">出发段+背车段+回城段公里数:</span>
|
||||
<span class="content">{{orderInfo.supplierSettleMileageAb + '+' + orderInfo.supplierSettleMileageBc + '+' + orderInfo.supplierSettleMileageCa}} </span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {myMixins} from "@/utils/myMixins"
|
||||
import {getAccountRecordDetail} from "@/api/mine"
|
||||
export default {
|
||||
name: "settlementDetail",
|
||||
mixins:[myMixins],
|
||||
data(){
|
||||
return{
|
||||
id:'',
|
||||
postfix:'',
|
||||
orderInfo:{},
|
||||
index:"",
|
||||
queryTime:'',//记录工单对账选择的时间
|
||||
}
|
||||
},
|
||||
async mounted() {
|
||||
this.id=this.$route.params?.id;
|
||||
this.postfix=this.$route.params?.postfix;
|
||||
this.index=this.$route.params?.index;
|
||||
this.queryTime = this.$route.params?.queryTime
|
||||
await this.getDetail()
|
||||
},
|
||||
methods: {
|
||||
goback(){
|
||||
this.$router.push({
|
||||
name:"accountingView",
|
||||
params:{
|
||||
id: this.id, // 参数对象的属性
|
||||
postfix:this.postfix,
|
||||
activeIndex:this.index,
|
||||
queryTime:this.queryTime
|
||||
}
|
||||
})
|
||||
},
|
||||
async getDetail(){
|
||||
let res= await getAccountRecordDetail({
|
||||
id:this.id,
|
||||
postfix:this.postfix
|
||||
})
|
||||
if(res.code === 200){
|
||||
this.orderInfo=res.data
|
||||
console.log(" this.orderInfo", this.orderInfo)
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import "@/styles/mixin.scss";
|
||||
@import "@/styles/common.scss";
|
||||
.wrap{
|
||||
@include wh(100%,100%);
|
||||
background-color: #F4F5F7;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.navBar{
|
||||
margin-bottom: 46px;
|
||||
}
|
||||
.title{
|
||||
@include fontWeightSize(bold,14px);
|
||||
@include colorOpa(#323643,0.66);
|
||||
}
|
||||
.line{
|
||||
@include wh(100%,2px);
|
||||
opacity: 0.16;
|
||||
border-top: 1px solid;
|
||||
margin-top: 7px;
|
||||
border-image: linear-gradient(270deg, rgba(217, 217, 217, 0.6), rgba(178, 178, 178, 1), rgba(178, 178, 178, 1), rgba(217, 217, 217, 0.6)) 1 1;
|
||||
}
|
||||
.item{
|
||||
@include flexCenter;
|
||||
font-size: 12px !important;
|
||||
font-weight: 400 !important;
|
||||
.titleLeft{
|
||||
opacity: .5;
|
||||
line-height: 27px;
|
||||
}
|
||||
}
|
||||
img{
|
||||
@include wh(35px,15px);
|
||||
margin-left: 21px;
|
||||
}
|
||||
.common{
|
||||
background-color: #FFFFFF;
|
||||
padding: 11px 24px 14px;
|
||||
box-sizing: border-box;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.baseInfo{
|
||||
@include wh(100%,100%);
|
||||
|
||||
}
|
||||
</style>
|
Reference in New Issue
Block a user