Browse Source

完善维修工单

zhanglei
yunuo970428 11 months ago
parent
commit
b4404b5603
  1. 44
      yxt-as-ui/src/api/operation/repairbill.js
  2. 908
      yxt-as-ui/src/views/operation/repairbill/repairbillAdd.vue
  3. 111
      yxt-as-ui/src/views/operation/repairbill/repairbillBYLeaveFactory.vue
  4. 72
      yxt-as-ui/src/views/operation/repairbill/repairbillByBeCompleted.vue
  5. 34
      yxt-as-ui/src/views/operation/repairbill/repairbillBySettleAccounts.vue
  6. 379
      yxt-as-ui/src/views/operation/repairbill/repairbillInfo.vue

44
yxt-as-ui/src/api/operation/repairbill.js

@ -26,6 +26,14 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
sendBack: function(data) {
return request({
url: '/as/v1/AsBusrepairBill/sendBack',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
fetchBySid: function(data) {
return request({
url: '/as/v1/AsBusrepairBill/fetchDetailsBySid/' + data,
@ -49,7 +57,7 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
// 确认材料费
// 结算
settle: function(data) {
return request({
url: '/as/v1/AsBusrepairBill/settle',
@ -57,5 +65,39 @@ export default {
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 打印出门证
printCard: function(data) {
return request({
url: '/as/v1/AsBusrepairBill/printCard',
method: 'post',
params: data
})
},
// 打印结算单
printSettle: function(data) {
return request({
url: '/as/v1/AsBusrepairBill/printSettle',
method: 'post',
params: data
})
},
// 确认工时费比例初始化
detailsByManHourFee: function(data) {
return request({
url: '/as/v1/AsBusrepairBill/detailsByManHourFee',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 确认工时费比例保存
saveByManHourFee: function(data) {
return request({
url: '/as/v1/AsBusrepairBill/saveByManHourFee',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
}
}

908
yxt-as-ui/src/views/operation/repairbill/repairbillAdd.vue

File diff suppressed because it is too large

111
yxt-as-ui/src/views/operation/repairbill/repairbillBYLeaveFactory.vue

@ -92,6 +92,11 @@
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50"/>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="是否可出厂" align="center" width="130">
<template slot-scope="scope">
<span>{{ scope.row.outDoorState == '1' ? '是' : scope.row.outDoorState == '0' ? '否' :'' }}</span>
</template>
</el-table-column>
<el-table-column label="单据编号" align="center" width="130">
<template slot-scope="scope">
<span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.billNo }}</span>
@ -136,6 +141,8 @@
<repairbillAdd v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="resetState" @reloadlist="getList"/>
<!-- 详情 -->
<repairbillInfo v-show="viewState == 4" ref="divInfo" @doback="resetState" />
<!-- 欠款出厂 -->
<arrearsleavefactoryAdd v-show="viewState == 5" ref="divQKCC" @doback="resetState" />
</div>
</template>
@ -146,7 +153,10 @@ import ButtonBar from '@/components/ButtonBar'
import req from '@/api/operation/repairbill'
import repairbillAdd from './repairbillAdd'
import repairbillInfo from './repairbillInfo'
import arrearsleavefactoryAdd from '../arrearsleavefactory/arrearsleavefactoryAdd'
import arrearsleavefactory from '@/api/operation/arrearsleavefactory'
import { typeValues } from '@/api/Common/dictcommons'
import { getStorage } from '@/utils/auth'
export default {
name: 'RepairBYLeaveFactory',
@ -155,7 +165,8 @@ export default {
pageye,
ButtonBar,
repairbillAdd,
repairbillInfo
repairbillInfo,
arrearsleavefactoryAdd
},
data() {
return {
@ -164,16 +175,16 @@ export default {
{
type: 'primary',
size: 'small',
icon: 'edit',
btnKey: 'toEdit',
btnLabel: '编辑'
icon: '',
btnKey: 'toPrint',
btnLabel: '打印出门证'
},
{
type: 'danger',
type: 'primary',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
icon: '',
btnKey: 'leaveFactory',
btnLabel: '欠款出厂申请'
},
{
type: 'info',
@ -189,6 +200,7 @@ export default {
tableKey: 0,
list: [],
sids: [], // SIDs
multipleSelection: [],
billType_list: [],
state_list: [
{
@ -265,11 +277,11 @@ export default {
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toEdit':
this.toEdit()
case 'toPrint':
this.toPrint()
break
case 'doDel':
this.doDel()
case 'leaveFactory':
this.leaveFactory()
break
case 'doClose':
this.doClose()
@ -281,6 +293,7 @@ export default {
// sid
handleSelectionChange(row) {
const aa = []
this.multipleSelection = row
row.forEach(element => {
aa.push(element.sid)
})
@ -351,10 +364,36 @@ export default {
}
this.getList()
},
toEdit() {
toPrint() {
if (this.sids.length === 1) {
this.viewState = 3
this.$refs['divAdd'].showEdit(this.sids[0])
if (this.multipleSelection[0].outDoorState === '1') {
req.printCard({ sid: this.sids[0] }).then((res) => {
if (res.success) {
var xhr = new XMLHttpRequest()
xhr.open('GET', process.env.VUE_APP_BASE_API + '/base/file/download?filePath=' + res.data + '&outFileName=' + '出门证', true)
xhr.setRequestHeader('token', getStorage())
xhr.responseType = 'blob'
xhr.onload = function(e) {
//
var blob = this.response
var filename = '出门证.pdf'
var a = document.createElement('a')
// blob.type="application/octet-stream";
// url
var url = URL.createObjectURL(blob)
a.href = url
a.download = filename
a.click()
// URL
window.URL.revokeObjectURL(url)
}
//
xhr.send()
}
})
} else {
this.$message({ showClose: true, type: 'error', message: '请选择是否可出厂为是的记录进行操作' })
}
} else {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行操作' })
}
@ -363,35 +402,21 @@ export default {
this.viewState = 4
this.$refs['divInfo'].showInfo(row)
},
//
doDel() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
leaveFactory() {
if (this.sids.length === 1) {
if (this.multipleSelection[0].subject === '保外' && this.multipleSelection[0].outDoorState === '0') {
arrearsleavefactory.init(this.sids[0]).then((res) => {
if (res.success) {
this.viewState = 5
this.$refs['divQKCC'].showAdd(res.data)
}
})
} else {
this.$message({ showClose: true, type: 'error', message: '请选择是否可出厂为否且科目为保外的记录进行操作' })
}
} else {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行操作' })
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then(resp => {
if (resp.success) {
this.$message({ type: 'success', message: resp.msg, showClose: true })
}
this.getList()
loading.close()
}).catch(e => {
loading.close()
})
}).catch(() => {
})
},
//
resetState() {

72
yxt-as-ui/src/views/operation/repairbill/repairbillByBeCompleted.vue

@ -136,6 +136,34 @@
<repairbillAdd v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="resetState" @reloadlist="getList"/>
<!-- 详情 -->
<repairbillInfo v-show="viewState == 4" ref="divInfo" @doback="resetState" />
<!-- 确认工时费比例 -->
<el-dialog :visible.sync="dialogVisible" width="70%">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-table :key="gsfKey" :data="formobj.list" :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" min-width="180" />
<el-table-column prop="manHourFee" label="工时费" align="center" min-width="120" />
<el-table-column prop="repairerName" label="维修人" align="center" min-width="200" />
<el-table-column label="分配比例" align="center" min-width="150">
<template slot-scope="scope">
<el-select v-model="scope.row.allocationProportionKey" placeholder="请选择" @change="allocationProportionChange($event, scope.row)" clearable filterable>
<el-option v-for="item in allocationProportion_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="allotmentAmount" label="分配金额" align="center" min-width="120" />
<el-table-column label="备注" align="center" min-width="180">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" clearable placeholder="" />
</template>
</el-table-column>
</el-table>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" size="small" @click="handleConfirm">确定</el-button>
<el-button size="small" @click="dialogVisible = false">取消</el-button>
</div>
</el-dialog>
</div>
</template>
@ -160,7 +188,22 @@ export default {
data() {
return {
btndisabled: false,
dialogVisible: false,
gsfKey: 1,
index: 0,
formobj: {
sid: '',
list: []
},
allocationProportion_list: [],
btnList: [
{
type: 'primary',
size: 'small',
icon: '',
btnKey: 'toConfirm',
btnLabel: '确认工时费比例'
},
{
type: 'primary',
size: 'small',
@ -265,6 +308,9 @@ export default {
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toConfirm':
this.toConfirm()
break
case 'toEdit':
this.toEdit()
break
@ -351,6 +397,32 @@ export default {
}
this.getList()
},
toConfirm() {
req.detailsByManHourFee(this.sids).then((res) => {
if (res.success) {
this.dialogVisible = true
this.formobj = res.data
}
})
},
allocationProportionChange(value, row) {
const choose = this.allocationProportion_list.filter((item) => item.dictKey === value)
if (choose !== null && choose.length > 0) {
row.allocationProportion = choose[0].dictValue
row.allotmentAmount = Math.round((parseFloat(row.manHourFee) * parseFloat(row.allocationProportion)) * 100) / 100
} else {
row.allocationProportion = ''
row.allotmentAmount = ''
}
},
handleConfirm() {
req.saveByManHourFee(this.formobj).then((res) => {
if (res.success) {
this.dialogVisible = false
this.$message({ showClose: true, type: 'success', message: '保存成功' })
}
})
},
toEdit() {
if (this.sids.length === 1) {
this.viewState = 3

34
yxt-as-ui/src/views/operation/repairbill/repairbillBySettleAccounts.vue

@ -136,8 +136,6 @@
<repairbillAdd v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="resetState" @reloadlist="getList"/>
<!-- 详情 -->
<repairbillInfo v-show="viewState == 4" ref="divInfo" @doback="resetState" />
<!-- 欠款出厂 -->
<arrearsleavefactoryAdd v-show="viewState == 5" ref="divQKCC" @doback="resetState" />
</div>
</template>
@ -150,7 +148,6 @@ import arrearsleavefactory from '@/api/operation/arrearsleavefactory'
import { typeValues } from '@/api/Common/dictcommons'
import repairbillAdd from './repairbillAdd'
import repairbillInfo from './repairbillInfo'
import arrearsleavefactoryAdd from '../arrearsleavefactory/arrearsleavefactoryAdd'
export default {
name: 'RepairBillBySettleAccounts',
@ -159,8 +156,7 @@ export default {
pageye,
ButtonBar,
repairbillAdd,
repairbillInfo,
arrearsleavefactoryAdd
repairbillInfo
},
data() {
return {
@ -173,13 +169,6 @@ export default {
btnKey: 'toEdit',
btnLabel: '编辑'
},
{
type: 'primary',
size: 'small',
icon: '',
btnKey: 'leaveFactory',
btnLabel: '欠款出厂'
},
{
type: 'danger',
size: 'small',
@ -201,7 +190,6 @@ export default {
tableKey: 0,
list: [],
sids: [], // SIDs
multipleSelection: [],
billType_list: [],
state_list: [
{
@ -281,9 +269,6 @@ export default {
case 'toEdit':
this.toEdit()
break
case 'leaveFactory':
this.leaveFactory()
break
case 'doDel':
this.doDel()
break
@ -297,7 +282,6 @@ export default {
// sid
handleSelectionChange(row) {
const aa = []
this.multipleSelection = row
row.forEach(element => {
aa.push(element.sid)
})
@ -376,22 +360,6 @@ export default {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行操作' })
}
},
leaveFactory() {
if (this.sids.length === 1) {
if (this.multipleSelection[0].subject === '保外') {
arrearsleavefactory.init(this.sids[0]).then((res) => {
if (res.success) {
this.viewState = 5
this.$refs['divQKCC'].showAdd(res.data)
}
})
} else {
this.$message({ showClose: true, type: 'error', message: '请选择科目为保外的记录进行操作' })
}
} else {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行操作' })
}
},
toInfo(row) {
this.viewState = 4
this.$refs['divInfo'].showInfo(row)

379
yxt-as-ui/src/views/operation/repairbill/repairbillInfo.vue

@ -34,16 +34,20 @@
<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>
<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="16">
<el-col :span="8">
<div class="span-sty">预计完工</div>
<el-form-item><span class="addinputInfo">{{ formobj.estimatedFinishTime }}</span></el-form-item>
</el-col>
@ -63,10 +67,6 @@
</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>
@ -75,6 +75,10 @@
<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">
@ -88,8 +92,8 @@
<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>
<div class="span-sty">客户来源</div>
<el-form-item><span class="addinputInfo">{{ formobj.customerSource }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
@ -121,19 +125,15 @@
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="送修人信息" name="2">
<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>
<div class="span-sty">对接人姓名</div>
<el-form-item><span class="addinputInfo">{{ formobj.dockingPeople }}</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 :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>
@ -143,77 +143,38 @@
<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>
<div class="span-sty">责任比例</div>
<el-form-item><span class="addinputInfo">{{ formobj.insuranceVo.responsibilityRatio }}</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>
<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' ? '是' : '否' }}</span></el-form-item>
<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.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>
<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>
@ -223,18 +184,23 @@
<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="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="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" />
@ -251,22 +217,55 @@
<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></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="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>
<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">{{ ysjeTotal }} = 合计金额{{ jeTotal }} - 优惠<span>{{ formobj.discountAmount }}</span> - 优惠券<span>{{ formobj.coupon }}</span> - 积分抵扣<span>{{ formobj.scoreDeduct }}</span></span></el-form-item>
<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>
@ -296,29 +295,36 @@ export default {
serviceKey: 1,
// subjoin
subjoinKey: 2,
// insuranceKey
insuranceKey: 3,
formobj: {
sid: '',
createByName: '',
operator: '',
registerRemarks: '',
billNo: '',
billType: '',
createByName: '',
deptName: '',
createDate: '',
billTypeKey: '',
entryTime: '',
estimatedFinishTime: '',
billType: '',
subjectSid: '',
subject: '',
claimManufacturerSid: '',
claimManufacturer: '',
isGoOut: '',
estimatedFinishTime: '',
entryTime: '',
nodeName: '',
waitorName: '',
waitorSid: '',
groupSid: '',
groupName: '',
waitorSid: '',
waitorName: '',
mainRepairers: '',
barCode: '',
shotRemarks: '',
printRemarks: '',
remarks: '',
isSpecialSign: '',
discountAmount: '',
coupon: '',
scoreDeduct: '',
nodeName: '',
nodeTime: '',
outDoorState: '',
outDoorTime: '',
@ -326,6 +332,7 @@ export default {
customerName: '',
mobile: '',
customerOrg: '',
customerSource: '',
memberCardSid: '',
memberCarNumber: '',
vehMark: '',
@ -334,42 +341,28 @@ export default {
mileage: '',
oil: '',
currentMileage: '',
dockingPeopleSid: '',
dockingPeople: '',
dockingPhone: '',
invoiceVo: {
isInvoicing: '',
invoiceType: '',
invoiceTypeKey: '',
invoiceTitle: '',
taxpayerNo: '',
invoiceCode: '',
taxRate: ''
invoiceCompanySid: '',
invoiceCompany: ''
},
insuranceVo: {
responsibility: '',
responsibilityKey: '',
otherInsuranceType: '',
otherInsuranceTypeKey: '',
insuranceCompany1: '',
insuranceCompany2: '',
insurer: '',
claimBillNo: '',
investigator: '',
lossAdjuster: '',
isSpecialSign: '',
accidentType: '',
accidentTypeKey: ''
},
otherVo: {
manufacturer: '',
senderName: '',
senderMobile: ''
isPersonInjuries: '',
responsibilityRatioKey: '',
responsibilityRatio: '',
insuranceList: []
},
sitemVos: [],
aitemVos: [],
goodsDetailsVos: [],
orgPath: '',
createBySid: '',
deptSid: '',
deptName: '',
operatorSid: '',
nodeCode: '',
settleVo: {
@ -383,9 +376,27 @@ export default {
otherSettleKey: '',
otherSettleValue: '',
debts: '',
settleTime: ''
settleTime: '',
otherSettleAmount: ''
},
showReSettleBtn: true
showReSettleBtn: true,
hourAmount: '',
otherAmount: '',
goodsAmount: '',
addAmount: '',
taxAmount: '',
outAmount: '',
subsidyAmount: '',
rescueAmount: '',
actualAmount: '',
receivableAmount: '',
subsidyRemarks: '',
rescueRemarks: '',
outRemarks: '',
fileName: '',
operator: '',
useOrgSid: '',
createOrgSid: ''
},
rules: {}
}
@ -403,21 +414,22 @@ export default {
}
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
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 !== '') {
@ -427,22 +439,35 @@ export default {
}
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
// = + + +
ysTotal() {
let ys = '0'
ys = Math.round((parseFloat(ys) + parseFloat(this.gsfTotal) + parseFloat(this.clfTotal) + parseFloat(this.fjfTotal)) * 100) / 100
return ys
},
// = + + +
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
// = +
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
},
//
ysjeTotal() {
// = -
ssTotal() {
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
ysje = Math.round((parseFloat(ysje) + parseFloat(this.ysTotal) - parseFloat(this.yhTotal)) * 100) / 100
return ysje
}
},
@ -470,32 +495,37 @@ export default {
},
negativeSettlement() {
this.viewState = 2
this.$refs['divFJS'].showAdd(this.formobj.sid )
this.$refs['divFJS'].showAdd(this.formobj.sid)
},
handleReturn() {
this.formobj = {
sid: '',
createByName: '',
operator: '',
registerRemarks: '',
billNo: '',
billType: '',
createByName: '',
deptName: '',
createDate: '',
billTypeKey: '',
entryTime: '',
estimatedFinishTime: '',
billType: '',
subjectSid: '',
subject: '',
claimManufacturerSid: '',
claimManufacturer: '',
isGoOut: '',
estimatedFinishTime: '',
entryTime: '',
nodeName: '',
waitorName: '',
waitorSid: '',
groupSid: '',
groupName: '',
waitorSid: '',
waitorName: '',
mainRepairers: '',
barCode: '',
shotRemarks: '',
printRemarks: '',
remarks: '',
isSpecialSign: '',
discountAmount: '',
coupon: '',
scoreDeduct: '',
nodeName: '',
nodeTime: '',
outDoorState: '',
outDoorTime: '',
@ -503,6 +533,7 @@ export default {
customerName: '',
mobile: '',
customerOrg: '',
customerSource: '',
memberCardSid: '',
memberCarNumber: '',
vehMark: '',
@ -511,42 +542,28 @@ export default {
mileage: '',
oil: '',
currentMileage: '',
dockingPeopleSid: '',
dockingPeople: '',
dockingPhone: '',
invoiceVo: {
isInvoicing: '',
invoiceType: '',
invoiceTypeKey: '',
invoiceTitle: '',
taxpayerNo: '',
invoiceCode: '',
taxRate: ''
invoiceCompanySid: '',
invoiceCompany: ''
},
insuranceVo: {
responsibility: '',
responsibilityKey: '',
otherInsuranceType: '',
otherInsuranceTypeKey: '',
insuranceCompany1: '',
insuranceCompany2: '',
insurer: '',
claimBillNo: '',
investigator: '',
lossAdjuster: '',
isSpecialSign: '',
accidentType: '',
accidentTypeKey: ''
},
otherVo: {
manufacturer: '',
senderName: '',
senderMobile: ''
isPersonInjuries: '',
responsibilityRatioKey: '',
responsibilityRatio: '',
insuranceList: []
},
sitemVos: [],
aitemVos: [],
goodsDetailsVos: [],
orgPath: '',
createBySid: '',
deptSid: '',
deptName: '',
operatorSid: '',
nodeCode: '',
settleVo: {
@ -560,9 +577,27 @@ export default {
otherSettleKey: '',
otherSettleValue: '',
debts: '',
settleTime: ''
settleTime: '',
otherSettleAmount: ''
},
showReSettleBtn: true
showReSettleBtn: true,
hourAmount: '',
otherAmount: '',
goodsAmount: '',
addAmount: '',
taxAmount: '',
outAmount: '',
subsidyAmount: '',
rescueAmount: '',
actualAmount: '',
receivableAmount: '',
subsidyRemarks: '',
rescueRemarks: '',
outRemarks: '',
fileName: '',
operator: '',
useOrgSid: '',
createOrgSid: ''
}
this.$emit('doback')
}
@ -577,4 +612,10 @@ export default {
.addinputInfo {
margin-left: 120px !important;
}
.span-sty-one {
width: 180px !important;
}
.addinputInfo-one {
margin-left: 170px !important;
}
</style>

Loading…
Cancel
Save