工单对账模块

This commit is contained in:
2023-08-22 10:24:11 +08:00
parent 90e3353058
commit d8ea2408cf
9 changed files with 778 additions and 311 deletions

View File

@ -56,12 +56,13 @@ const routes = [
}
},
{
path: "/reAccounting",
name: 'reAccountingView',
component: () => import('@/views/workOrder/reAccounting.vue'),
meta: {
title: '重新记账'
}
path: "/aduitCompleteDetail",
name: 'aduitCompleteDetail',
component: () => import('@/views/workOrder/aduitCompleteDetail.vue'),
meta: {
title: '审核完成-详情'
}
},
{
path: "/invoicingNotify",

View File

@ -14,9 +14,9 @@ service.interceptors.request.use(
config => {
config.data = config.contentType ? config.data : qs.stringify(config.data)
config.headers['Content-Type'] = config.contentType || 'application/x-www-form-urlencoded'
// const urlParams = new URLSearchParams(window.location.search);
// const token = urlParams.get('token');
let token='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJzemwiLCJhdWQiOlsic3VwcGxpZXItYXBwIl0sIm5iZiI6MTY5MjI2MzgzOSwidXNlcl9pbmZvIjp7InVzZXJJZCI6NTQ1ODUsInBob25lIjoiMTc2MzAwMzU2NTgiLCJuYW1lIjoi5bCP5a6LIiwic3VwcGxpZXJOYW1lIjoi5LiK5rW35a6J55WFQSIsInN1cHBsaWVySWQiOjExMjgsInN1cHBsaWVyVHlwZSI6MSwidXNlcm5hbWUiOiJzemwiLCJ1c2VyVHlwZSI6IkFQUCIsImF1dGhvcml0aWVzIjpbXX0sInNjb3BlIjpbImFsbCJdLCJpc3MiOiJodHRwczovL3Npbm9hc3Npc3QuY29tIiwiZXhwIjoxNjkyMzUwMjM5LCJpYXQiOjE2OTIyNjM4Mzl9.Mldu7SmfjNEdH-bItFCLVL-zo-IopHWTc8LkTXOtC58'
const urlParams = new URLSearchParams(window.location.search);
const token = urlParams.get('token');
// let token='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJzemwiLCJhdWQiOlsic3VwcGxpZXItYXBwIl0sIm5iZiI6MTY5MjY2OTAyNiwidXNlcl9pbmZvIjp7InVzZXJJZCI6NTQ1ODUsInBob25lIjoiMTc2MzAwMzU2NTgiLCJuYW1lIjoi5bCP5a6LIiwic3VwcGxpZXJOYW1lIjoi5LiK5rW35a6J55WFQSIsInN1cHBsaWVySWQiOjExMjgsInN1cHBsaWVyVHlwZSI6MSwidXNlcm5hbWUiOiJzemwiLCJ1c2VyVHlwZSI6IkFQUCIsImF1dGhvcml0aWVzIjpbXX0sInNjb3BlIjpbImFsbCJdLCJpc3MiOiJodHRwczovL3Npbm9hc3Npc3QuY29tIiwiZXhwIjoxNjkyNzU1NDI2LCJpYXQiOjE2OTI2NjkwMjZ9.TA3LuH23aPRwghC4USWpBXQcv7t_wAAt8znuRa75qws'
config.headers['Authorization'] = `${token}`;
return config
},

View File

@ -24,10 +24,18 @@ export const myMixins = {
this.$toast('复制成功')
},
goBack(){//h5返回APP
window.android.sendMessage("goBack");
let data = {"action":"goBack","params":""}
var u = navigator.userAgent;
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
// var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
if(isiOS){
window.webkit.messageHandlers.nativeObject.postMessage(data);
}else {
window.android.sendMessage("goBack");
}
},
h5GoBack(){
this.$router.back();
}
},
}
}

View File

@ -108,7 +108,8 @@ export default {
states:item.states.code
}
});
}
},
}
}
</script>

View File

@ -119,6 +119,7 @@ export default {
width: 100%;
height: 100%;
background-color: #F4F5F7;
overflow-y: auto;
}
.common {
@include wh(100%, 161px);

View File

@ -2,7 +2,7 @@
<div class="wrap">
<div class="navBar">
<van-nav-bar
title="司机管理"
:title="auditFormShow ? '重新记账' : '记账' "
left-arrow
left-arrow-color="#FFFFFF"
:border="false"
@ -53,78 +53,472 @@
</div>
</div>
<div class="supplierData common">
<div class="supplierData common" v-show="!auditFormShow">
<div class="title">供应商数据:</div>
<div class="line"></div>
<div class="inpInfo">
<div class="titleContent">
<div>拖车里程:</div>
<div>路桥费:</div>
<div>小轮费:</div>
<div>收取客户金额:</div>
<div>费用总计:</div>
<div class="flex-between" v-show="abState">
<div> 到达事发地距离:</div>
<div class="halfOpcity"><input type="number" v-model="form.supplierSettleMileageAb"/>公里</div>
</div>
<div class="flex-between" v-show="bcState" >
<div> 拖车里程:</div>
<div class="halfOpcity"><input type="number" v-model="form.supplierSettleMileageBc"/>公里</div>
</div>
<div class="flex-between" v-show="caState" >
<div>返程里程:</div>
<div class="halfOpcity"><input type="number" v-model="form.supplierSettleMileageCa"/>公里</div>
</div>
<div class="flex-between" v-show="bridgeAbState">
<div>ab路桥费:</div>
<div class="halfOpcity"><input type="number" v-model="form.supplierBridgeAmountAb"/></div>
</div>
<div class="flex-between" v-show="bridgeBcState">
<div>bc路桥费:</div>
<div class="halfOpcity"><input type="number" v-model="form.supplierBridgeAmountBc"/></div>
</div>
<div class="flex-between" v-show="bridgeCaState">
<div>ca路桥费:</div>
<div class="halfOpcity"><input type="number" v-model="form.supplierBridgeAmountCa"/></div>
</div>
<div class="flex-between" v-show="waitAmountState">
<div>等候费:</div>
<div class="halfOpcity inputContent"><input type="number" v-model="form.supplierWaitAmount"/></div>
</div>
<div class="flex-between" v-show="tyreAmountState">
<div>小轮费:</div>
<div class="halfOpcity inputContent"><input type="number" v-model="form.supplierTyreAmount"/></div>
</div>
<div class="flex-between" v-show="dilemmaAmountState && basePriceDisabled">
<div>困境费:</div>
<div class="halfOpcity inputContent"><input type="number" v-model="form.supplierDilemmaAmount"/></div>
</div>
<div class="flex-between" v-show="basementFeeState">
<div>地库费:</div>
<div class="halfOpcity inputContent"><input type="number" v-model="form.supplierBasementFee"/></div>
</div>
<div class="flex-between">
<div>收取客户金额:</div>
<div class="halfOpcity inputContent"><input type="number" v-model="form.supplierCustomerAmount"/></div>
</div>
<div class="flex-between">
<div>基本费用:</div>
<div class="halfOpcity inputContent"><input type="number" :disabled="basePriceDisabled" v-model="form.supplierBasePrice"/></div>
</div>
<div class="flex-between">
<div>额外费用总计:</div>
<div class="halfOpcity inputContent"><input type="number" :disabled="true" v-model="form.supplierExtraPrice"/></div>
</div>
<div class="flex-between">
<div>费用总计: </div>
<div class="halfOpcity inputContent"><input type="number" :disabled="true" v-model="form.supplierSettleAmount"/></div>
</div>
<div class="flex-between">
<div> </div>
<div class="btnComputed" @click="compute">计算</div>
</div>
<div>备注说明:</div>
</div>
<div class="inputContent">
<div class="halfOpcity"><input type="number" />公里</div>
<div class="halfOpcity"><input type="number"/></div>
<div class="halfOpcity"><input type="number" v-model="form.supplierTyreAmount"/></div>
<div class="halfOpcity"><input type="number" v-model="form.supplierCustomerAmount"/></div>
<div class="btnComputed">计算</div>
</div>
</div>
<textarea class="multipleTxt" placeholder="报备描述"></textarea>
<two-common-btn class="btn" @cancelClick="cancelBtn" @submitClick="submitBtn" />
<textarea v-model="form.supplierRemark" class="multipleTxt" placeholder="报备描述"></textarea>
<two-common-btn class="btn" @cancelClick="cancelBtn" @submitClick="save" />
</div>
<div class="dataType" v-show="auditFormShow">
<table>
<tr>
<td class="col1 checkData">审核数据</td>
<td class="col2 supplierShuju">供应商数据</td>
</tr>
<tr v-show="abState">
<td class="col1">到达事发地距离:{{orderInfo.settleMileageAb + '公里'}}</td>
<td class="col2 halfOpc"><input placeholder="输入到达事发地距离" v-model="form.supplierSettleMileageAb"/></td>
</tr>
<tr v-show="bcState">
<td class="col1">拖车里程:{{orderInfo.settleMileageBc + '公里'}}</td>
<td class="col2 halfOpc"><input placeholder="输入拖车公里" v-model="form.supplierSettleMileageBc"/></td>
</tr>
<tr v-show="caState">
<td class="col1">返程里程:{{orderInfo.settleMileageCa + '公里'}}</td>
<td class="col2 halfOpc"><input placeholder="输入返程里程" v-model="form.supplierSettleMileageCa"/></td>
</tr>
<tr v-show="bridgeAbState">
<td class="col1">ab路桥费:{{orderInfo.bridgeAmountAb +'元'}}</td>
<td class="col2 halfOpc"><input placeholder="输入ab路桥费" v-model="form.supplierBridgeAmountAb"/></td>
</tr>
<tr v-show="bridgeBcState">
<td class="col1">bc路桥费:{{orderInfo.bridgeAmountBc +'元'}}</td>
<td class="col2 halfOpc"><input placeholder="输入bc路桥费" v-model="form.supplierBridgeAmountBc"/></td>
</tr>
<tr v-show="bridgeCaState">
<td class="col1">ca路桥费:{{orderInfo.bridgeAmountCa +'元'}}</td>
<td class="col2 halfOpc"><input placeholder="输入ca路桥费" v-model="form.supplierBridgeAmountCa"/></td>
</tr>
<tr v-show="tyreAmountState">
<td class="col1">小轮费:{{orderInfo.bridgeAmount +'元'}}</td>
<td class="col2 halfOpc"><input placeholder="输入小轮费" v-model="form.supplierTyreAmount"/></td>
</tr>
<tr v-show="dilemmaAmountState && basePriceDisabled">
<td class="col1">困境费:{{orderInfo.dilemmaAmount +'元'}}</td>
<td class="col2 halfOpc"><input placeholder="输入困境费" v-model="form.supplierDilemmaAmount"/></td>
</tr>
<tr v-show="waitAmountState">
<td class="col1">等候费:{{orderInfo.waitAmount +'元'}}</td>
<td class="col2 halfOpc"><input placeholder="输入等候费" v-model="form.supplierWaitAmount"/></td>
</tr>
<tr v-show="basementFeeState">
<td class="col1">地库费:{{orderInfo.basementFee +'元'}}</td>
<td class="col2 halfOpc"><input placeholder="输入地库费" v-model="form.supplierBasementFee"/></td>
</tr>
<tr>
<td class="col1">基本费用:{{orderInfo.basePrice +'元'}}</td>
<td class="col2 halfOpc" style="background-color: #6C81CD"><input :disabled="basePriceDisabled" v-model="form.supplierBasePrice"/></td>
</tr>
<tr>
<td class="col1">额外费用总计:{{orderInfo.extraPrice +'元'}}</td>
<td class="col2 halfOpc"><input :disabled="true" v-model="form.supplierExtraPrice"/></td>
</tr>
<tr>
<td class="col1">收取客户:{{orderInfo.customerAmount +'元'}}</td>
<td class="col2 halfOpc"><input placeholder="收取客户金额" v-model="form.supplierCustomerAmount"/></td>
</tr>
<tr>
<td class="col1">费用总计:{{orderInfo.settleAmount +'元'}}</td>
<td class="col2">
<input :disabled="true" v-model="form.supplierSettleAmount"/>
<button class="btnCom" @click="compute">计算</button>
</td>
</tr>
<tr>
<td class="col1 alignLeft" style="border-bottom-left-radius: 3px">
<div class="title col1" style="white-space: nowrap;">审核失败原因</div>
<div class="reason">{{orderInfo.financeRefuseAuditRemark}}</div>
<div class="imgWrap" v-show="orderInfo.auditPhoto">
<img class="camerImg" :src="orderInfo.auditPhoto" >
</div>
</td>
<td class="col2 alignLeft" style="border-bottom-right-radius: 3px">
<div class="title"> 本次补充说明:</div>
<!-- <div class="reason">审核失败原因审核失败原因审核失败原因审核失败原因审核失败原因</div>-->
<div class="imgWrap" style="display: flex">
<van-uploader
v-model="fileList"
@after-read="handleFileRead"
multiple
:max-count="3"
:preview-size="54"
accept="image"
capture="camera"
/>
</div>
</td>
</tr>
</table>
</div>
<two-common-btn v-show="auditFormShow" class="btn" :title2="accountStatus ==2 ? '再次审核' : '再次提交' " @cancelClick="cancelBtn" @submitClick="save" />
</div>
</template>
<script>
import {myMixins} from '@/utils/myMixins'
import {getAccountRecordDetail} from "@/api/mine"
import {leftCopy} from '@/utils/common'
import {getAccountRecordDetail,accountRecordCompute,updateAccountRecordInfo} from "@/api/mine"
import TwoCommonBtn from "@/components/twoBtnCommon.vue"
import order from "../../store/modules/order";
export default {
name: "accountingView",
computed: {
order() {
return order
}
},
mixins:[myMixins],
data(){
return{
fileList:[],
id:'',
postfix:'',
orderInfo:{},
serviceType:'',
settleType:'',
taskFlowId: '',
appCode:'',
abState:false,
bcState:false,
caState:false,
bridgeAbState:false,
bridgeBcState:false,
bridgeCaState:false,
waitAmountState:false,
dilemmaAmountState:false,
tyreAmountState:false,
basementFeeState:false,
accountStatus:'',
fixedPrice:'',
fixedPriceType:'',
supplierId:'',
basePrice:'0.0',
auditBasePrice:'0',
auditExtraPrice:'0',
extraPrice:'0',
commitLoading: false,
auditFormShow:false,
form:{
id:'',
taskOrderCostHisId:'',
userOrderId:'',
supplierId:'',
cutInsuranceAmount:'',
policyState:'',
taskFlowId:'',
contractSettleId:'',
supplierSettleMileageAb:'',
supplierSettleMileageBc:'',
supplierSettleMileageCa:'',
startPrice:'',
containMileage:'',
unitPrice:'',
supplierOtherAmount:'',
supplierCustomerAmount:'',
supplierCustomerAmountRemark:'',
supplierBridgeAmountAb:'',
supplierBridgeAmountBc:'',
supplierBridgeAmountCa:'',
supplierBridgeAmount:'',
supplierDilemmaAmount:'',
supplierTyreAmount:'',
}
supplierWaitAmount:'',
supplierBasementFee:'',
supplierBasePrice:'',
supplierExtraPrice:'',
supplierSettleAmount:'',
supplierOtherAmountRemark:'',
policyAmount:'',
dilemmaAmount:'',
tyreAmount:'',
waitAmount:'',
bridgeAmountAb:'',
bridgeAmountBc:'',
bridgeAmountCa:'',
supplierRemark:'',
settleMileageAb:'',
settleMileageBc:'',
settleMileageCa:'',
settleAmount:'',
otherAmount:'',
otherAmountRemark:'',
customerAmount:'',
customerAmountRemark:'',
auditRemark:'',
createTime:'',
updateTime:'',
batchCode:'',
checkCount:'',
auditUser:'',
auditTime:'',
basePrice:'',
bridgeAmount:'',
extraPrice:'',
basementFee:'',
financePrice:'',
firstAuditSuccessRemark:'',
createUser:'',
updateUser:'',
autoRollback:'',
isExceptionAuditConfirm:'',
isExceptionAuditConfirmRemark:'',
financeRefuseAuditRemark:'',
exceptionApprovalStatus:'',
exceptionApprovalRemark:'',
auditSuccessRemark:'',
},
}
},
async mounted() {
this.id=this.$route.params?.id;
this.postfix=this.$route.params?.postfix;
await this.getDetail()
this.$nextTick(async ()=>{
await this.getDetail()
})
console.log("this.basePriceDisabled",this.basePriceDisabled)
},
computed:{
basePriceDisabled(){
return !(this.serviceType == '困境救援' || this.serviceType == '困境-吊车' || this.serviceType == '困境救援-事故' || this.serviceType == '困境救援-故障'
|| (this.fixedPrice && parseFloat(this.fixedPrice) > 0 && this.fixedPriceType) || this.supplierId == 500921)
},
//保险实拖案件,剔除人保和太平事故
isCPICDrag(){
return this.settleType == '实拖' && !['PICC10101','PICCSHANGQI','PICC101099','SAIPCC2021',''].includes(this.appCode)
},
isBasement(){
return this.serviceType == '困境救援' || this.serviceType == '困境-吊车' || this.serviceType == '困境救援-事故' || this.serviceType == '困境救援-故障'
},
},
methods:{
handleFileRead({ file }) {
const url = URL.createObjectURL(file);
this.fileList.push({ file, url });
this.$toast('图片上传成功');
},
async compute() {
//现金业务置为0
// if(this.form.contractSettleTypeString == '车主现收'){
// this.form.supplierBasePrice = 0
// this.form.supplierExtraPrice = 0
// this.form.supplierSettleAmount = 0
// } else {
if (this.form.supplierOtherAmount > 0) {
if (this.form.supplierOtherAmountRemark == '') {
this.$alert('请填写其他费用说明');
return;
}
}
if (!this.basePriceDisabled) {
//困境的案件,或者一口价案件,基本费用可以输入
let dilemmaBasePrice = parseFloat(this.form.supplierBasePrice) || 0
this.form.supplierBasePrice = dilemmaBasePrice
this.form.supplierExtraPrice = 0
this.form.supplierSettleAmount = dilemmaBasePrice - (parseFloat(this.form.supplierCustomerAmount) || 0)
// console.log("困境案件费用总计",this.form.supplierSettleAmount)
}else{
let data = await accountRecordCompute( {
...this.form,
settleType:this.orderInfo.settleType?.code
});
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 getDetail(){
this.abState = false
this.bcState = false
this.caState = false
this.bridgeAbState = false
this.bridgeBcState = false
this.bridgeCaState = false
this.waitAmountState = false
this.dilemmaAmountState = false
this.tyreAmountState = false
this.basementFeeState = false
this.accountStatus = ''
this.basePrice = '0.0'
this.extraPrice = '0'
this.totalPrice = '0.0'
let res= await getAccountRecordDetail({
id:this.id,
postfix:this.postfix
})
if(res.code === 200){
this.orderInfo=res.data
this.serviceType=this.orderInfo.serviceName
this.taskFlowId=this.orderInfo.taskFlowId
this.settleType=this.orderInfo.settleType?.label
this.accountStatus = this.orderInfo.accountStatus?.code
this.appCode=this.orderInfo.appCode
this.fixedPrice = this.orderInfo.fixedPrice
this.fixedPriceType=this.orderInfo.fixedPriceType
this.supplierId=this.orderInfo.supplierId
}
if(this.accountStatus == 1 || this.accountStatus == 0){//没有记录,等待审核
leftCopy(this.form, {...res.data})
// console.log("form",this.form)
}
if(this.accountStatus == 2 || this.accountStatus == 3){//审核失败,再次审核
leftCopy(this.form, {...res.data})
this.auditFormShow = true;//是否显示审核数据
// this.confirmAuditState = true //确定审核状态
}
if(this.settleType == '实拖' && this.basePriceDisabled){
this.bcState = true
this.form.supplierSettleMileageAb = 0
this.form.supplierSettleMileageCa = 0
}else if(this.settleType == '单程' && this.basePriceDisabled){
this.abState = true
this.bcState = true
this.form.supplierSettleMileageCa = 0
if(this.taskFlowId == '1' && this.basePriceDisabled ){
this.bcState = false
this.form.supplierSettleMileageBc = 0
}
}else if(this.settleType == '全程' && this.basePriceDisabled){
this.abState = true
this.bcState = true
this.caState = true
}else if(this.settleType == '全程减半' && this.basePriceDisabled){
this.abState = true
this.bcState = true
this.caState = true
}
// console.log(this.orderInfo.refBridgeAmountAB,this.orderInfo.refBridgeAmountBC,this.orderInfo.refBridgeAmountCA,"1212")
if(this.orderInfo.refBridgeAmountAB > 0 && !this.isCPICDrag && !this.isBasement) this.bridgeAbState = true
if(this.orderInfo.refBridgeAmountBC > 0 && !this.isCPICDrag && !this.isBasement) this.bridgeBcState = true
if(this.orderInfo.refBridgeAmountCA > 0 && !this.isCPICDrag && !this.isBasement) this.bridgeCaState = true
if(this.orderInfo.refWaitFee > 0) this.waitAmountState = true
if(this.orderInfo.refDilemmaFee > 0) this.dilemmaAmountState = true
if(this.orderInfo.refTyreNumber > 0 && this.taskFlowId != '1') this.tyreAmountState = true
if(this.orderInfo.refBasementFee > 0 && this.taskFlowId != '1' ){
this.basementFeeState = true
this.form.supplierBasementFee = this.orderInfo.refBasementFee
}
// console.log("res",res)
},
cancelBtn(){
console.log("取消")
this.$router.back();
},
async save() {
this.commitLoading = true;
if(this.form.supplierOtherAmount > 0){
if(this.form.supplierOtherAmountRemark == ''){
this.$alert('请填写其他费用说明');
this.commitLoading = false;
return;
}
}
let data= await getAccountRecordDetail({
id:this.id,
postfix:this.postfix
})
this.accountStatus = data.data.accountStatus?.code
if(data.data.accountStatus?.code >= 4){
this.$alert('已进入后续流程,不允许操作');
this.commitLoading = false;
return;
}
let accountStatus = 0
if(this.accountStatus == 0) accountStatus = 1
if(this.accountStatus == 1) accountStatus = 1
if(this.accountStatus == 2) accountStatus = 3
if(this.accountStatus == 3) accountStatus = 3
this.form.supplierSettleMileageAb = parseInt(this.form.supplierSettleMileageAb) || 0
this.form.supplierSettleMileageBc = parseInt(this.form.supplierSettleMileageBc) || 0
this.form.supplierSettleMileageCa = parseInt(this.form.supplierSettleMileageCa) || 0
this.form.supplierBridgeAmountAb = parseInt(this.form.supplierBridgeAmountAb) || 0
this.form.supplierBridgeAmountBc =parseInt(this.form.supplierBridgeAmountBc) || 0
this.form.supplierBridgeAmountCa =parseInt(this.form.supplierBridgeAmountCa) || 0
this.form.supplierBridgeAmount = parseInt(this.form.supplierBridgeAmountAb) + parseInt(this.form.supplierBridgeAmountBc) + parseInt(this.form.supplierBridgeAmountCa)
this.form.supplierCustomerAmount = parseFloat(this.form.supplierCustomerAmount) || 0
this.form.supplierDilemmaAmount = parseInt(this.form.supplierDilemmaAmount) || 0
this.form.supplierOtherAmount = parseInt(this.form.supplierOtherAmount) || 0
this.form.supplierTyreAmount = parseInt(this.form.supplierTyreAmount) || 0
this.form.supplierWaitAmount = parseInt(this.form.supplierWaitAmount) || 0
this.form.supplierBasementFee = parseInt(this.form.supplierBasementFee) || 0
await this.compute();
let res = await updateAccountRecordInfo( {
...this.form,
accountStatus: accountStatus,
supplierBridgeAmount:parseInt(this.form.supplierBridgeAmountAb || 0) + parseInt(this.form.supplierBridgeAmountBc || 0) + parseInt(this.form.supplierBridgeAmountCa || 0)
});
if(res.code === 200){
this.$toast('操作成功')
// setTimeout(()=>{
// this.$router.back()
// },)
}
// this.hiddenReset();
this.$emit('success');
this.commitLoading = false;
},
submitBtn(){
console.log("提交")
}
},
components:{
TwoCommonBtn
@ -139,6 +533,7 @@ export default {
width: 100%;
height: 100%;
background-color: #F4F5F7;
overflow-y: auto;
}
.navBar{
margin-bottom: 46px;
@ -183,8 +578,8 @@ img{
.supplierData{
@include wh(100%,438px);
.inpInfo{
display: flex;
justify-content: space-between;
//display: flex;
//justify-content: space-between;
margin: 0 5px;
color: #323643;
line-height: 32px;
@ -193,28 +588,27 @@ img{
text-align: right;
}
.titleContent{
width: 91px;
@include fontWeightSize(bold,13px);
}
.flex-between{
@include flexColBet
}
.halfOpcity{
opacity: .5;
}
.inputContent{
text-align: right;
//opacity: .5;e
.btnComputed{
width: 48px;
@include all-height(18px);
text-align: center;
color: #FFFFFF;
background: #354D93;
border-radius: 3px;
position: absolute;
right: 24px;
}
}
}
.btnComputed{
width: 48px;
@include all-height(18px);
text-align: center;
@include bgFontColor(#FFFFFF,#354D93);
border-radius: 3px;
}
.multipleTxt{
@include wh(100%,87px);
background: #FAFAFA;
@ -228,4 +622,97 @@ img{
margin-top: 8px;
}
}
.dataType{
padding: 0 8px;
table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
}
td {
padding: 10px;
border: 1px solid #ccc;
text-align: center;
}
.alignLeft{
text-align: left !important;
.reason{
@include fontWeightSize(400,11px);
color: #FF8F37;
opacity: 1 !important;
}
.camerImg{
@include widHeiMar(54px,42px,4px);
margin-top: 15px;
}
.title{
@include fontWeightSize(400,11px);
opacity: .5;
}
}
.col1{
width: 41%;
background-color: #E9E9EA;
@include fontWeightSize(400,12px);
opacity: 0.55;
}
.col2{
width: 58%;
background-color: #EAEFF6;
@include fontWeightSize(400,12px);
color: #0434D0;
input{
width: 72px;
border: none;
background-color:#EAEFF6;
text-align: center;
}
input::placeholder {
color: #0434D0; /* 设置提示内容文字颜色 */
}
}
.btnCom{
border: none;
width: 48px;
@include all-height(18px);
background: #354D93;
border-radius: 3px;
color: #FFFFFF;
@include fontWeightSize(bold,12px)
}
.checkData,.supplierShuju{
color: #323643;
}
.checkData{
border-top-left-radius: 3px;
opacity: 0.66;
}
.supplierShuju{
border-top-right-radius: 3px;
}
.halfOpc{
opacity: .5;
}
}
.btn{
margin-top: 31px;
margin-bottom: 20px;
display: flex;
justify-content: space-around;
box-sizing: border-box;
padding: 0 8px;
button{
@include wh(105px,39px);
line-height: 39px;
background: #9EA7C0;
border-radius: 5px;
color: #FFFFFF;
@include fontWeightSize(bold,14px);
border: none;
}
.submit{
background: #354D93;
}
}
</style>

View File

@ -0,0 +1,219 @@
<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="h5GoBack"
/>
</div>
<div class="baseInfo common">
<div class="title">基本信息:</div>
<div class="line"></div>
<div class="item">
<span class="titleLeft">工单编号</span>
<span class="content" id="copyText">{{ orderInfo.orderCode }}</span>
<img @click="copyText" src="@/assets/copy.png" />
</div>
<div class="item">
<span class="titleLeft">车牌号&nbsp;&nbsp;&nbsp;&nbsp;</span>
<span class="content">{{orderInfo.plateNumber}}</span>
</div>
<div class="item">
<span class="titleLeft">服务类型</span>
<span class="content" >{{ orderInfo.serviceName }}</span>
</div>
<div class="item">
<span class="titleLeft">工单状态</span>
<span class="content" >{{ orderInfo.taskSuccessStatus?.label }}</span>
</div>
<div class="item">
<span class="titleLeft">结算比例</span>
<span class="content" >{{ orderInfo.supplierSettleRatio?.label }}</span>
</div>
<div class="item">
<span class="titleLeft">结算类型</span>
<span class="content" >{{ orderInfo.settleType?.label }}</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>
<div class="item">
<span class="titleLeft">扣除责任险费</span>
<span class="content">{{orderInfo.policyAmount}} {{orderInfo.cutInsuranceAmount}}</span>
</div>
</div>
<div class="baseInfo common">
<div class="title">审核数据:</div>
<div class="line"></div>
<div class="item">
<span class="titleLeft">拖车里程</span>
<span class="content">{{ orderInfo.bridgeAmountBc + ' km' }}</span>
</div>
<div class="item">
<span class="titleLeft">路桥费</span>
<span class="content">{{orderInfo.bridgeAmount + ' 元' }}</span>
</div>
<div class="item">
<span class="titleLeft">小轮费</span>
<span class="content" >{{ orderInfo.tyreAmount + ' 元'}}</span>
</div>
<div class="item">
<span class="titleLeft">困境费</span>
<span class="content" >{{ orderInfo.dilemmaAmount + ' 元'}}</span>
</div>
<div class="item">
<span class="titleLeft">等候费</span>
<span class="content" >{{ orderInfo.waitAmount + ' 元'}}</span>
</div>
<div class="item">
<span class="titleLeft">地库费</span>
<span class="content" >{{ orderInfo.basementFee + ' 元'}}</span>
</div>
<div class="item">
<span class="titleLeft">收取客户金额</span>
<span class="content" >{{ orderInfo.customerAmount + '元'}}</span>
</div>
<div class="item">
<span class="titleLeft">费用总计</span>
<span class="content" >{{ orderInfo.settleAmount + ' 元' }}</span>
</div>
</div>
</div>
</template>
<script>
import {myMixins} from "@/utils/myMixins"
import {getAccountRecordDetail} from "@/api/mine"
export default {
name: "aduitCompleteDetail",
mixins:[myMixins],
data(){
return{
id:'',
postfix:'',
orderInfo:{},
}
},
async mounted() {
this.id=this.$route.query?.id;
this.postfix=this.$route.query?.postfix;
console.log(this.id,this.postfix)
await this.getDetail()
},
methods: {
async getDetail() {
let res = await getAccountRecordDetail({
id: this.id,
postfix: this.postfix
})
if (res.code === 200) {
this.orderInfo = res.data
}
},
}
}
</script>
<style scoped lang="scss">
@import "@/styles/mixin.scss";
@import "@/styles/common.scss";
.wrap{
width: 100%;
height: 100%;
background-color: #F4F5F7;
overflow-y: auto;
}
.navBar{
margin-bottom: 46px;
}
.title{
@include fontWeightSize(bold,14px);
color: #323643;
opacity: 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{
display: flex;
align-items: center;
font-size: 12px !important;
font-weight: 400 !important;
//@include fontWeightSize(400,12px) !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%,276px);
}
.supplierData {
@include wh(100%, 438px);
.inpInfo {
display: flex;
justify-content: space-between;
margin: 0 5px;
color: #323643;
line-height: 32px;
input {
border: none;
text-align: right;
}
.titleContent {
width: 91px;
@include fontWeightSize(bold, 13px);
}
.halfOpcity {
opacity: .5;
}
.inputContent {
text-align: right;
//opacity: .5;e
.btnComputed {
width: 48px;
@include all-height(18px);
text-align: center;
color: #FFFFFF;
background: #354D93;
border-radius: 3px;
//position: absolute;
//right: 24px;
}
}
}
}
</style>

View File

@ -1,250 +0,0 @@
<template>
<div class="wrap">
<div class="baseInfo common">
<div class="title">基本信息:</div>
<div class="line"></div>
<div class="item">
<span class="title">工单编号</span>
<span class="content" id="copyText">ZD230626124283</span>
<img @click="copyText" src="@/assets/copy.png" />
</div>
<div class="item">
<span class="title">车牌号&nbsp;&nbsp;&nbsp;&nbsp;</span>
<span class="content">湘H-DD899</span>
</div>
<div class="item">
<span class="title">服务类型</span>
<span class="content" >搭电</span>
</div>
<div class="item">
<span class="title">工单状态</span>
<span class="content" >未完成</span>
</div>
<div class="item">
<span class="title">结算比例</span>
<span class="content" >按服务不成功结算</span>
</div>
<div class="item">
<span class="title">结算类型</span>
<span class="content" >系统一口价</span>
</div>
<div class="item" >
<span class="title">结算方式</span>
<div class="content" style="width: calc(100% - 84px);display: flex;justify-content: space-between;line-height: 27px" >
<span>起步价:135</span>
<span>包含公里数:15</span>
<span>超出单价:6</span>
</div>
</div>
<div class="item">
<span class="title">扣除责任险费</span>
<span class="content">0</span>
</div>
</div>
<div class="dataType">
<table>
<tr>
<td class="col1 checkData">审核数据</td>
<td class="col2 supplierData">供应商数据</td>
</tr>
<tr>
<td class="col1">拖车里程:32km</td>
<td class="col2 halfOpc"><input placeholder="输入拖车公里"/></td>
</tr>
<tr>
<td class="col1">路桥费:36</td>
<td class="col2 halfOpc"><input placeholder="输入路桥费"/></td>
</tr>
<tr>
<td class="col1">小轮费:32</td>
<td class="col2 halfOpc"><input placeholder="输入小轮费"/></td>
</tr>
<tr>
<td class="col1">收取客户:100</td>
<td class="col2 halfOpc"><input placeholder="收取客户金额"/></td>
</tr>
<tr>
<td class="col1">费用总计:165</td>
<td class="col2" style="position: relative" >
<span class="halfOpc">费用总计</span>
<button class="btnCom">计算</button></td>
</tr>
<tr>
<td class="col1 alignLeft" style="border-bottom-left-radius: 3px">
<div class="title col1" style="white-space: nowrap;">审核失败原因</div>
<div class="reason">审核失败原因审核失败原因审核失败原因审核失败原因审核失败原因</div>
<div class="imgWrap">
<img class="camerImg" src="@/assets/camer.png" >
<img class="camerImg" src="@/assets/camer.png" >
</div>
</td>
<td class="col2 alignLeft" style="border-bottom-right-radius: 3px">
<div class="title"> 本次补充说明:</div>
<!-- <div class="reason">审核失败原因审核失败原因审核失败原因审核失败原因审核失败原因</div>-->
<div class="imgWrap">
<img class="camerImg" src="@/assets/camer.png" >
<img class="camerImg" src="@/assets/camer.png" >
<img class="camerImg" src="@/assets/camer.png" >
</div>
</td>
</tr>
</table>
</div>
<div class="btn">
<button>取消</button>
<button>再次审核</button>
<button class="submit">提交</button>
</div>
</div>
</template>
<script>
import {myMixins} from '@/utils/myMixins'
export default {
name: "reAccountingView",
mixins:[myMixins],
methods:{
}
}
</script>
<style scoped lang="scss">
@import "@/styles/mixin.scss";
.wrap{
width: 100%;
height: 100%;
background-color: #F4F5F7;
overflow-y: auto;
}
.title{
@include fontWeightSize(bold,14px);
color: #323643;
opacity: 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{
display: flex;
align-items: center;
@include fontWeightSize(400,12px);
.title{
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%,276px);
}
.dataType{
padding: 0 8px;
table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
}
td {
padding: 10px;
border: 1px solid #ccc;
text-align: center;
}
.alignLeft{
text-align: left !important;
.reason{
@include fontWeightSize(400,11px);
color: #FF8F37;
opacity: 1 !important;
}
.camerImg{
@include widHeiMar(54px,42px,4px);
margin-top: 15px;
}
.title{
@include fontWeightSize(400,11px);
opacity: .5;
}
}
.col1{
width: 41%;
background-color: #E9E9EA;
@include fontWeightSize(400,12px);
opacity: 0.55;
}
.col2{
width: 58%;
background-color: #EAEFF6;
@include fontWeightSize(400,12px);
color: #0434D0;
input{
width: 72px;
border: none;
background-color:#EAEFF6;
text-align: center;
}
input::placeholder {
color: #0434D0; /* 设置提示内容文字颜色 */
}
}
.btnCom{
position: absolute;
right: 13px;
border: none;
width: 48px;
@include all-height(18px);
background: #354D93;
border-radius: 3px;
color: #FFFFFF;
@include fontWeightSize(bold,12px)
}
.checkData,.supplierData{
color: #323643;
}
.checkData{
border-top-left-radius: 3px;
opacity: 0.66;
}
.supplierData{
border-top-right-radius: 3px;
}
.halfOpc{
opacity: .5;
}
}
.btn{
margin-top: 31px;
margin-bottom: 20px;
display: flex;
justify-content: space-around;
box-sizing: border-box;
padding: 0 8px;
button{
@include wh(105px,39px);
line-height: 39px;
background: #9EA7C0;
border-radius: 5px;
color: #FFFFFF;
@include fontWeightSize(bold,14px);
border: none;
}
.submit{
background: #354D93;
}
}
</style>

View File

@ -56,9 +56,10 @@
<span class="allTxt">{{ item.accountStatus?.label }}</span>
</div>
<div class="rightBtn">
<button class="btn" v-if="queryType == 1" @click="handleAccounting(item)">记账</button>
<button class="btn" v-if="[3, 5].includes(queryType)">重新记账</button>
<button class="btn" v-if="queryType == 7">查看详情</button>
<button class="btn" v-if="queryType == 1" @click="handleAccounting(item)">记账</button>
<button class="btn" v-if="queryType == 3" @click="handleAccounting(item)">{{item.accountStatus.code == 3 ? '重新记账' : '记账'}}</button>
<button class="btn" v-if="queryType == 5" @click="handleAccounting(item)">重新记账</button>
<button class="btn" v-if="queryType == 7" @click="goPage('aduitCompleteDetail',{id:item.id,postfix: item.postfix})">查看详情</button>
</div>
</div>
</div>
@ -122,12 +123,11 @@ export default {
}
},
handleAccounting(item){
console.log("iiii",item)
this.$router.push({
name: 'accountingView', // 目标路由的名称
params: {
id: item.id, // 参数对象的属性
postfix:item.postfix
postfix:item.postfix,
}
});
},