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.
 
 
 
 
 
 

647 lines
25 KiB

<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<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.claimManufacturer }}</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.isGoOut == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
<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="8">
<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.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-col :span="8">
<div class="span-sty">特殊标注</div>
<el-form-item><span
class="addinputInfo"
>{{ formobj.isSpecialSign == '1' ? '有' : '否' }}</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.customerSource }}</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.dockingPeople }}</span></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">对接人电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.dockingPhone }}</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="8">
<div class="span-sty">责任比例</div>
<el-form-item><span
class="addinputInfo"
>{{ formobj.insuranceVo.responsibilityRatio }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">是否存在人伤</div>
<el-form-item><span
class="addinputInfo"
>{{ formobj.insuranceVo.isPersonInjuries == '1' ? '是' : formobj.insuranceVo.isPersonInjuries == '0' ? '否' : '' }}</span></el-form-item>
</el-col>
</el-row>
<el-table
:key="insuranceKey"
:data="formobj.insuranceVo.insuranceList"
:index="index"
border
style="width: 100%"
>
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column prop="useInsurer" label="使用保险方" align="center" min-width="150" />
<el-table-column prop="insuranceType" label="使用险种" align="center" min-width="150" />
<el-table-column prop="insuranceCompany" label="保险公司" align="center" min-width="150" />
<el-table-column prop="claimBillNo" label="报案号" align="center" min-width="180" />
<el-table-column prop="investigator" label="勘察员及电话" align="center" min-width="220" />
<el-table-column prop="lossAdjuster" label="定损员及电话" align="center" min-width="220" />
</el-table>
</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' ? '是' : formobj.invoiceVo.isInvoicing == '0' ? '否' : '' }}</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.invoiceCompany }}</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="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-row>
<el-col :span="24">
<div class="span-sty span-sty-one" style="width: 300px;!important;">前台登记时对商品要求备注</div>
<el-form-item><span class="addinputInfo-one">{{ formobj.registerRemarks }}</span></el-form-item>
</el-col>
</el-row>
<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-row>
<el-col :span="8">
<div class="span-sty">外出费(元)</div>
<el-form-item><span class="addinputInfo">{{ formobj.outAmount }}</span></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.outRemarks }}</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.subsidyAmount }}</span></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.subsidyRemarks }}</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.rescueAmount }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.rescueRemarks }}</span></el-form-item>
</el-col>
<el-col :span="8">
<span />
</el-col>
</el-row>
<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">{{ ysTotal }} = 工时费:{{ gsfTotal }} + 材料费:{{ clfTotal }} +
附加费:{{ fjfTotal }} + 税额:0</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">{{ ssTotal }} = 应收合计{{ ysTotal }} -
优惠{{ yhTotal }}</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,
// insuranceKey保险信息
insuranceKey: 3,
formobj: {
sid: '',
registerRemarks: '',
billNo: '',
createByName: '',
deptName: '',
createDate: '',
billTypeKey: '',
billType: '',
subjectSid: '',
subject: '',
claimManufacturerSid: '',
claimManufacturer: '',
isGoOut: '',
estimatedFinishTime: '',
entryTime: '',
nodeName: '',
waitorName: '',
waitorSid: '',
groupSid: '',
groupName: '',
mainRepairers: '',
printRemarks: '',
remarks: '',
isSpecialSign: '',
discountAmount: '',
coupon: '',
scoreDeduct: '',
nodeTime: '',
outDoorState: '',
outDoorTime: '',
customerSid: '',
customerName: '',
mobile: '',
customerOrg: '',
customerSource: '',
memberCardSid: '',
memberCarNumber: '',
vehMark: '',
vinNo: '',
vehModel: '',
mileage: '',
oil: '',
currentMileage: '',
dockingPeopleSid: '',
dockingPeople: '',
dockingPhone: '',
invoiceVo: {
isInvoicing: '',
invoiceType: '',
invoiceTypeKey: '',
invoiceCompanySid: '',
invoiceCompany: ''
},
insuranceVo: {
responsibility: '',
responsibilityKey: '',
isPersonInjuries: '',
responsibilityRatioKey: '',
responsibilityRatio: '',
insuranceList: []
},
sitemVos: [],
aitemVos: [],
goodsDetailsVos: [],
createBySid: '',
operatorSid: '',
nodeCode: '',
settleVo: {
payerNo: '',
payerName: '',
receivableAmount: '',
depositdeductAmount: '',
settleKey: '',
settleValue: '',
settleAmount: '',
otherSettleKey: '',
otherSettleValue: '',
debts: '',
settleTime: '',
otherSettleAmount: ''
},
showReSettleBtn: true,
hourAmount: '',
otherAmount: '',
goodsAmount: '',
addAmount: '',
taxAmount: '',
outAmount: '',
subsidyAmount: '',
rescueAmount: '',
actualAmount: '',
receivableAmount: '',
subsidyRemarks: '',
rescueRemarks: '',
outRemarks: '',
fileName: '',
operator: '',
useOrgSid: '',
createOrgSid: ''
},
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') * parseFloat(e
.count !== '' ? e.count : '0'))) * 100) / 100
}
})
}
return clf
},
// 计算附加费 == 外出费 + 厂家补助 + 施救费 + 附加项目列表中所有销售价之和
fjfTotal() {
let fjf = '0'
fjf = parseFloat(this.formobj.outAmount !== '' ? this.formobj.outAmount : '0') + parseFloat(this.formobj
.subsidyAmount !== '' ? this.formobj.subsidyAmount : '0') + parseFloat(this.formobj.rescueAmount !== ''
? this.formobj.rescueAmount : '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
},
// 计算应收合计 = 工时费 + 材料费 + 附加费 + 税额
ysTotal() {
let ys = '0'
ys = Math.round((parseFloat(ys) + parseFloat(this.gsfTotal) + parseFloat(this.clfTotal) + parseFloat(this
.fjfTotal)) * 100) / 100
return ys
},
// 优惠 = 服务项目列表中的所有优惠之和 + 商品列表中所有优惠之和
yhTotal() {
let yh = '0'
if (this.formobj.sitemVos.length > 0) {
this.formobj.sitemVos.forEach((e) => {
if (e.serviceItem !== '') {
yh = Math.round((parseFloat(yh) + parseFloat(e.discountAmount !== '' ? e.discountAmount : '0')) *
100) / 100
}
})
}
if (this.formobj.goodsDetailsVos.length > 0) {
this.formobj.goodsDetailsVos.forEach((e) => {
if (e.goodsSpuName !== '') {
yh = Math.round((parseFloat(yh) + parseFloat(e.discountAmount !== '' ? e.discountAmount : '0')) *
100) / 100
}
})
}
return yh
},
// 计算实收合计 = 应收合计 - 优惠
ssTotal() {
let ysje = '0'
ysje = Math.round((parseFloat(ysje) + parseFloat(this.ysTotal) - parseFloat(this.yhTotal)) * 100) / 100
return ysje
}
},
methods: {
showInfo(sid) {
this.viewTitle = '维修单详情'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchBySid(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: '',
registerRemarks: '',
billNo: '',
createByName: '',
deptName: '',
createDate: '',
billTypeKey: '',
billType: '',
subjectSid: '',
subject: '',
claimManufacturerSid: '',
claimManufacturer: '',
isGoOut: '',
estimatedFinishTime: '',
entryTime: '',
nodeName: '',
waitorName: '',
waitorSid: '',
groupSid: '',
groupName: '',
mainRepairers: '',
printRemarks: '',
remarks: '',
isSpecialSign: '',
discountAmount: '',
coupon: '',
scoreDeduct: '',
nodeTime: '',
outDoorState: '',
outDoorTime: '',
customerSid: '',
customerName: '',
mobile: '',
customerOrg: '',
customerSource: '',
memberCardSid: '',
memberCarNumber: '',
vehMark: '',
vinNo: '',
vehModel: '',
mileage: '',
oil: '',
currentMileage: '',
dockingPeopleSid: '',
dockingPeople: '',
dockingPhone: '',
invoiceVo: {
isInvoicing: '',
invoiceType: '',
invoiceTypeKey: '',
invoiceCompanySid: '',
invoiceCompany: ''
},
insuranceVo: {
responsibility: '',
responsibilityKey: '',
isPersonInjuries: '',
responsibilityRatioKey: '',
responsibilityRatio: '',
insuranceList: []
},
sitemVos: [],
aitemVos: [],
goodsDetailsVos: [],
createBySid: '',
operatorSid: '',
nodeCode: '',
settleVo: {
payerNo: '',
payerName: '',
receivableAmount: '',
depositdeductAmount: '',
settleKey: '',
settleValue: '',
settleAmount: '',
otherSettleKey: '',
otherSettleValue: '',
debts: '',
settleTime: '',
otherSettleAmount: ''
},
showReSettleBtn: true,
hourAmount: '',
otherAmount: '',
goodsAmount: '',
addAmount: '',
taxAmount: '',
outAmount: '',
subsidyAmount: '',
rescueAmount: '',
actualAmount: '',
receivableAmount: '',
subsidyRemarks: '',
rescueRemarks: '',
outRemarks: '',
fileName: '',
operator: '',
useOrgSid: '',
createOrgSid: ''
}
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.span-sty-one {
width: 180px !important;
}
.addinputInfo-one {
margin-left: 170px !important;
}
</style>