You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

580 lines
23 KiB

<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<!-- <el-button type="primary" size="small" @click="negativeSettlement()">反结算</el-button> -->
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createDate }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">工单类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.billType }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">科目</div>
<el-form-item><span class="addinputInfo">{{ formobj.subject }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">环节</div>
<el-form-item><span class="addinputInfo">{{ formobj.nodeName }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">进厂时间</div>
<el-form-item><span class="addinputInfo">{{ formobj.entryTime }}</span></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">预计完工</div>
<el-form-item><span class="addinputInfo">{{ formobj.estimatedFinishTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">服务顾问</div>
<el-form-item><span class="addinputInfo">{{ formobj.waitorName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">班组</div>
<el-form-item><span class="addinputInfo">{{ formobj.groupName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">主修人</div>
<el-form-item><span class="addinputInfo">{{ formobj.mainRepairers }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">快捷备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.shotRemarks }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">备注(打印)</div>
<el-form-item><span class="addinputInfo">{{ formobj.printRemarks }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<el-collapse v-model="activeNames">
<el-collapse-item title="客户信息" name="1">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">客户</div>
<el-form-item><span class="addinputInfo">{{ formobj.customerName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">联系电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.mobile }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">客户单位</div>
<el-form-item><span class="addinputInfo">{{ formobj.customerOrg }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">车牌号</div>
<el-form-item><span class="addinputInfo">{{ formobj.vehMark }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">车架号</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">车型</div>
<el-form-item><span class="addinputInfo">{{ formobj.vehModel }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">行驶里程(Km)</div>
<el-form-item><span class="addinputInfo">{{ formobj.mileage }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">油量(L)</div>
<el-form-item><span class="addinputInfo">{{ formobj.oil }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">当前里程(Km)</div>
<el-form-item><span class="addinputInfo">{{ formobj.currentMileage }}</span></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="送修人信息" name="2">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">送修人姓名</div>
<el-form-item><span class="addinputInfo">{{ formobj.otherVo.senderName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">送修人电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.otherVo.senderMobile }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">厂家</div>
<el-form-item><span class="addinputInfo">{{ formobj.otherVo.manufacturer }}</span></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="保险信息" name="3">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">责任划分</div>
<el-form-item><span class="addinputInfo">{{ formobj.insuranceVo.responsibility }}</span></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">对方险种</div>
<el-form-item><span class="addinputInfo">{{ formobj.insuranceVo.otherInsuranceType }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">保险公司1</div>
<el-form-item><span class="addinputInfo">{{ formobj.insuranceVo.insuranceCompany1 }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">保险公司2</div>
<el-form-item><span class="addinputInfo">{{ formobj.insuranceVo.insuranceCompany2 }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">保险索赔单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.insuranceVo.claimBillNo }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">保险人员</div>
<el-form-item><span class="addinputInfo">{{ formobj.insuranceVo.insurer }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">勘察员</div>
<el-form-item><span class="addinputInfo">{{ formobj.insuranceVo.investigator }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">定损员</div>
<el-form-item><span class="addinputInfo">{{ formobj.insuranceVo.lossAdjuster }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">特殊标志</div>
<el-form-item><span class="addinputInfo">{{ formobj.insuranceVo.isSpecialSign == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">出险类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.insuranceVo.accidentType }}</span></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="发票信息" name="4">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">是否开发票</div>
<el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.isInvoicing == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">发票类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.invoiceType }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">开票名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.invoiceTitle }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">税号</div>
<el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.taxpayerNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">发票号码</div>
<el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.invoiceCode }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">税率(%)</div>
<el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.taxRate }}</span></el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
<div class="title">服务项目</div>
<el-table :key="serviceKey" :data="formobj.sitemVos" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="serviceItem" label="服务项目" align="center" width="200" />
<el-table-column prop="serviceType" label="工种" align="center" width="150" />
<el-table-column prop="subject" label="科目" align="center" width="150" />
<el-table-column prop="repairerName" label="维修人" width="200" align="center" />
<el-table-column prop="examineHourPrice" label="考核工时" align="center" width="100" />
<el-table-column prop="hourPrice" label="工时单价" align="center" width="150" />
<el-table-column prop="hours" label="工时数" align="center" width="100" />
<el-table-column prop="price" label="销售价" align="center" width="150" />
<el-table-column prop="discount" label="折扣" align="center" width="100" />
<el-table-column prop="discountAmount" label="优惠" align="center" width="150" />
<el-table-column prop="amount" label="销售金额" align="center" width="150" />
<el-table-column prop="remarks" label="备注" align="center" min-width="300" />
</el-table>
<div class="title">商品</div>
<el-table :key="tableKey" :data="formobj.goodsDetailsVos" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column prop="goodsSpuName" label="商品名称" width="100" align="center" />
<el-table-column prop="goodsSkuCode" label="图号" width="100" align="center" />
<el-table-column prop="goodsSkuOwnSpec" label="规格" width="100" align="center" />
<el-table-column prop="unit" label="单位" width="100" align="center" />
<el-table-column prop="warehouseName" label="仓库" width="100" align="center" />
<el-table-column prop="warehouseRackCode" label="库位" width="100" align="center" />
<el-table-column prop="price" label="销售价" align="center" width="150" />
<el-table-column prop="count" label="数量" width="100" align="center" />
<el-table-column prop="discount" label="折扣" align="center" width="100" />
<el-table-column prop="discountAmount" label="优惠" width="100" align="center" />
<el-table-column prop="amount" label="金额" width="100" align="center" />
<el-table-column prop="remarks" label="备注" align="center" min-width="300" />
</el-table>
<div class="title">附加项目</div>
<el-table :key="subjoinKey" :data="formobj.aitemVos" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="aitemName" label="附加项目" align="center" width="200" />
<el-table-column prop="price" label="销售价" align="center" width="150" />
<el-table-column prop="remarks" label="备注" align="center" min-width="200" />
</el-table>
<el-row>
<el-col :span="24">
<div class="span-sty" style="border-right: 0px">合计金额:</div>
<el-form-item><span class="addinputInfo">{{ jeTotal }} = 工时费:{{ gsfTotal }} + 材料费:{{ clfTotal }} + 附加费:{{ fjfTotal }} + 税额:{{ seTotal }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty" style="border-right: 0px">应收金额</div>
<el-form-item><span class="addinputInfo">{{ ysjeTotal }} = 合计金额{{ jeTotal }} - 优惠<span>{{ formobj.discountAmount }}</span> - 优惠券<span>{{ formobj.coupon }}</span> - 积分抵扣<span>{{ formobj.scoreDeduct }}</span></span></el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
<!-- <workslrsettlementAdd v-show="viewState == 2" ref="divFJS" @doback="resetState" /> -->
</div>
</template>
<script>
import req from '@/api/operation/repairbill'
// import workslrsettlementAdd from '../workslrsettlement/workslrsettlementAdd'
export default {
name: 'RepairBillInfo',
components: {
// workslrsettlementAdd
},
data() {
return {
viewTitle: '',
viewState: 1,
activeNames: '1',
tableKey: 0,
index: 0,
// service服务
serviceKey: 1,
// subjoin附加项目
subjoinKey: 2,
formobj: {
sid: '',
createByName: '',
operator: '',
billNo: '',
billType: '',
billTypeKey: '',
entryTime: '',
estimatedFinishTime: '',
subjectSid: '',
subject: '',
groupSid: '',
groupName: '',
waitorSid: '',
waitorName: '',
mainRepairers: '',
barCode: '',
shotRemarks: '',
printRemarks: '',
discountAmount: '',
coupon: '',
scoreDeduct: '',
nodeName: '',
nodeTime: '',
outDoorState: '',
outDoorTime: '',
customerSid: '',
customerName: '',
mobile: '',
customerOrg: '',
memberCardSid: '',
memberCarNumber: '',
vehMark: '',
vinNo: '',
vehModel: '',
mileage: '',
oil: '',
currentMileage: '',
invoiceVo: {
isInvoicing: '',
invoiceType: '',
invoiceTypeKey: '',
invoiceTitle: '',
taxpayerNo: '',
invoiceCode: '',
taxRate: ''
},
insuranceVo: {
responsibility: '',
responsibilityKey: '',
otherInsuranceType: '',
otherInsuranceTypeKey: '',
insuranceCompany1: '',
insuranceCompany2: '',
insurer: '',
claimBillNo: '',
investigator: '',
lossAdjuster: '',
isSpecialSign: '',
accidentType: '',
accidentTypeKey: ''
},
otherVo: {
manufacturer: '',
senderName: '',
senderMobile: ''
},
sitemVos: [],
aitemVos: [],
goodsDetailsVos: [],
orgPath: '',
createBySid: '',
deptSid: '',
deptName: '',
operatorSid: '',
nodeCode: '',
settleVo: {
payerNo: '',
payerName: '',
receivableAmount: '',
depositdeductAmount: '',
settleKey: '',
settleValue: '',
settleAmount: '',
otherSettleKey: '',
otherSettleValue: '',
debts: '',
settleTime: ''
},
showReSettleBtn: true
},
rules: {}
}
},
computed: {
// 计算工时费 = 服务项目列表中所有销售价之和
gsfTotal() {
let gsf = '0'
if (this.formobj.sitemVos.length > 0) {
this.formobj.sitemVos.forEach((e) => {
if (e.serviceItem !== '') {
gsf = Math.round((parseFloat(gsf) + parseFloat(e.price !== '' ? e.price : '0')) * 100) / 100
}
})
}
return gsf
},
// 计算材料费 = 商品列表中所有销售价之和
clfTotal() {
let clf = '0'
if (this.formobj.goodsDetailsVos.length > 0) {
this.formobj.goodsDetailsVos.forEach((e) => {
if (e.goodsSpuName !== '') {
clf = Math.round((parseFloat(clf) + parseFloat(e.price !== '' ? e.price : '0')) * 100) / 100
}
})
}
return clf
},
// 计算附加费 == 附加项目列表中所有销售价之和
fjfTotal() {
let fjf = '0'
if (this.formobj.aitemVos.length > 0) {
this.formobj.aitemVos.forEach((e) => {
if (e.aitemName !== '') {
fjf = Math.round((parseFloat(fjf) + parseFloat(e.price !== '' ? e.price : '0')) * 100) / 100
}
})
}
return fjf
},
// 计算税额 = 材料费 * 税率
seTotal() {
let se = '0'
se = Math.round((parseFloat(this.clfTotal) * (parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
return se
},
// 计算合计金额 = 工时费 + 材料费 + 附加费 + 税额
jeTotal() {
let je = '0'
je = Math.round((parseFloat(je) + parseFloat(this.gsfTotal) + parseFloat(this.clfTotal) + parseFloat(this.fjfTotal) + parseFloat(this.seTotal)) * 100) / 100
return je
},
// 计算应收金额
ysjeTotal() {
let ysje = '0'
ysje = Math.round((parseFloat(ysje) + parseFloat(this.jeTotal) - parseFloat(this.formobj.discountAmount !== '' ? this.formobj.discountAmount : '0') - parseFloat(this.formobj.coupon !== '' ? this.formobj.coupon : '0') - parseFloat(this.formobj.scoreDeduct !== '' ? this.formobj.scoreDeduct : '0')) * 100) / 100
return ysje
}
},
methods: {
showInfo(row) {
this.viewTitle = '维修单详情'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchBySid(row.sid).then((res) => {
if (res.success) {
this.formobj = res.data
if (this.formobj.sitemVos.length > 0) {
this.formobj.sitemVos.forEach((e) => {
if (e.staffNameList.length > 0) {
e.repairerName = e.staffNameList.join(',')
}
})
}
}
})
},
resetState() {
this.viewState = 1
},
negativeSettlement() {
this.viewState = 2
this.$refs['divFJS'].showAdd(this.formobj.sid )
},
handleReturn() {
this.formobj = {
sid: '',
createByName: '',
operator: '',
billNo: '',
billType: '',
billTypeKey: '',
entryTime: '',
estimatedFinishTime: '',
subjectSid: '',
subject: '',
groupSid: '',
groupName: '',
waitorSid: '',
waitorName: '',
mainRepairers: '',
barCode: '',
shotRemarks: '',
printRemarks: '',
discountAmount: '',
coupon: '',
scoreDeduct: '',
nodeName: '',
nodeTime: '',
outDoorState: '',
outDoorTime: '',
customerSid: '',
customerName: '',
mobile: '',
customerOrg: '',
memberCardSid: '',
memberCarNumber: '',
vehMark: '',
vinNo: '',
vehModel: '',
mileage: '',
oil: '',
currentMileage: '',
invoiceVo: {
isInvoicing: '',
invoiceType: '',
invoiceTypeKey: '',
invoiceTitle: '',
taxpayerNo: '',
invoiceCode: '',
taxRate: ''
},
insuranceVo: {
responsibility: '',
responsibilityKey: '',
otherInsuranceType: '',
otherInsuranceTypeKey: '',
insuranceCompany1: '',
insuranceCompany2: '',
insurer: '',
claimBillNo: '',
investigator: '',
lossAdjuster: '',
isSpecialSign: '',
accidentType: '',
accidentTypeKey: ''
},
otherVo: {
manufacturer: '',
senderName: '',
senderMobile: ''
},
sitemVos: [],
aitemVos: [],
goodsDetailsVos: [],
orgPath: '',
createBySid: '',
deptSid: '',
deptName: '',
operatorSid: '',
nodeCode: '',
settleVo: {
payerNo: '',
payerName: '',
receivableAmount: '',
depositdeductAmount: '',
settleKey: '',
settleValue: '',
settleAmount: '',
otherSettleKey: '',
otherSettleValue: '',
debts: '',
settleTime: ''
},
showReSettleBtn: true
}
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
</style>