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.
340 lines
13 KiB
340 lines
13 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.createTime }}</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.salesName }}</span></el-form-item>
|
|
</el-col>
|
|
<el-col :span="16">
|
|
<div class="span-sty">科目</div>
|
|
<el-form-item><span class="addinputInfo">{{ formobj.subject }}</span></el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<div class="span-sty">快捷备注</div>
|
|
<el-form-item><span class="addinputInfo">{{ formobj.shotRemarks }}</span></el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<div class="span-sty">备注(打印)</div>
|
|
<el-form-item><span class="addinputInfo">{{ formobj.printRemarks }}</span></el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<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.vehMark }}/{{ formobj.vinNo }}</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.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="16">
|
|
<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="commodityKey" :data="formobj.goodsVos" :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="200" 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="supplierName" label="厂家" width="100" align="center" />
|
|
<el-table-column prop="currentCount" label="库存" width="100" align="center" />
|
|
<el-table-column prop="price" label="销售价" align="center" width="150" />
|
|
<el-table-column prop="count" label="数量" align="center" width="100" />
|
|
<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 }} = 材料费:{{ 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 }} - 优惠:{{ formobj.discountAmount }}</span></el-form-item>
|
|
<!-- - 优惠券:<el-input style="width: 100px" v-model="formobj.coupon" @keyup.native="formobj.coupon = getNumber(formobj.coupon, 2)" clearable placeholder="" /> - 积分抵扣:<el-input style="width: 100px" v-model="formobj.scoreDeduct" @keyup.native="formobj.scoreDeduct = getNumber(formobj.scoreDeduct, 2)" clearable placeholder="" />-->
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import req from '@/api/operation/salesticket'
|
|
|
|
export default {
|
|
name: 'SalesTicketInfo',
|
|
data() {
|
|
return {
|
|
viewTitle: '',
|
|
viewState: 1,
|
|
activeNames: '1',
|
|
index: 0,
|
|
// commodity商品
|
|
commodityKey: 1,
|
|
// subjoin附加项目
|
|
subjoinKey: 2,
|
|
formobj: {
|
|
sid: '',
|
|
createTime: '',
|
|
createByName: '',
|
|
createBySid: '',
|
|
customerName: '',
|
|
customerSid: '',
|
|
deptName: '',
|
|
deptSid: '',
|
|
mobile: '',
|
|
vehMark: '',
|
|
vinNo: '',
|
|
billNo: '',
|
|
subjectSid: '',
|
|
subject: '',
|
|
salesUserSid: '',
|
|
salesName: '',
|
|
shotRemarks: '',
|
|
printRemarks: '',
|
|
discountAmount: '',
|
|
coupon: '',
|
|
scoreDeduct: '',
|
|
customerOrg: '',
|
|
receivableAmount: '',
|
|
invoiceVo: {
|
|
isInvoicing: '',
|
|
invoiceType: '',
|
|
invoiceTypeKey: '',
|
|
invoiceTitle: '',
|
|
taxpayerNo: '',
|
|
invoiceCode: '',
|
|
taxRate: ''
|
|
},
|
|
aitemVos: [],
|
|
goodsVos: [],
|
|
settlementVo: {
|
|
payerNo: '',
|
|
payerName: '',
|
|
receivableAmount: '',
|
|
depositdeductAmount: '',
|
|
settleKey: '',
|
|
settleValue: '',
|
|
settleAmount: '',
|
|
otherSettleKey: '',
|
|
otherSettleValue: '',
|
|
otherSettleAmount: '',
|
|
debts: '',
|
|
settleTime: ''
|
|
}
|
|
},
|
|
rules: {}
|
|
}
|
|
},
|
|
computed: {
|
|
// 计算材料费 = 商品列表中所有销售价之和
|
|
clfTotal() {
|
|
let clf = '0'
|
|
if (this.formobj.goodsVos.length > 0) {
|
|
this.formobj.goodsVos.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.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')) * 100) / 100
|
|
// - parseFloat(this.formobj.coupon !== '' ? this.formobj.coupon : '0') - parseFloat(this.formobj.scoreDeduct !== '' ? this.formobj.scoreDeduct : '0')
|
|
return ysje
|
|
},
|
|
// 结算页面中计算欠款金额 = 应付金额 - 订金抵扣 - 结算金额 - 其他结算金额
|
|
qkjeTotal() {
|
|
let qkje = '0'
|
|
qkje = Math.round((parseFloat(this.ysjeTotal) - parseFloat(this.formobj.settlementVo.depositdeductAmount !== '' ? this.formobj.settlementVo.depositdeductAmount : '0') - parseFloat(this.formobj.settlementVo.settleAmount !== '' ? this.formobj.settlementVo.settleAmount : '0') - parseFloat(this.formobj.settlementVo.otherSettleAmount !== '' ? this.formobj.settlementVo.otherSettleAmount : '0')) * 100) / 100
|
|
return qkje
|
|
}
|
|
},
|
|
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
|
|
}
|
|
})
|
|
},
|
|
selectCustomer() {
|
|
this.viewState = 2
|
|
this.$refs['divCus'].getList()
|
|
},
|
|
handleReturn(isreload) {
|
|
if (isreload === 'true') this.$emit('reloadlist')
|
|
this.formobj = {
|
|
sid: '',
|
|
createTime: '',
|
|
createByName: '',
|
|
createBySid: '',
|
|
customerName: '',
|
|
customerSid: '',
|
|
deptName: '',
|
|
deptSid: '',
|
|
mobile: '',
|
|
vehMark: '',
|
|
vinNo: '',
|
|
billNo: '',
|
|
subjectSid: '',
|
|
subject: '',
|
|
salesUserSid: '',
|
|
salesName: '',
|
|
shotRemarks: '',
|
|
printRemarks: '',
|
|
discountAmount: '',
|
|
coupon: '',
|
|
scoreDeduct: '',
|
|
customerOrg: '',
|
|
receivableAmount: '',
|
|
invoiceVo: {
|
|
isInvoicing: '',
|
|
invoiceType: '',
|
|
invoiceTypeKey: '',
|
|
invoiceTitle: '',
|
|
taxpayerNo: '',
|
|
invoiceCode: '',
|
|
taxRate: ''
|
|
},
|
|
aitemVos: [],
|
|
goodsVos: [],
|
|
settlementVo: {
|
|
payerNo: '',
|
|
payerName: '',
|
|
receivableAmount: '',
|
|
depositdeductAmount: '',
|
|
settleKey: '',
|
|
settleValue: '',
|
|
settleAmount: '',
|
|
otherSettleKey: '',
|
|
otherSettleValue: '',
|
|
otherSettleAmount: '',
|
|
debts: '',
|
|
settleTime: ''
|
|
}
|
|
}
|
|
this.settleVisible = false
|
|
this.submitdisabled = false
|
|
this.$emit('doback')
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
.span-sty {
|
|
width: 130px !important;
|
|
}
|
|
.addinputInfo {
|
|
margin-left: 120px !important;
|
|
}
|
|
</style>
|
|
|