|
@@ -22,7 +22,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div style="margin: 55px 5px 0px 5px;'">
|
|
|
- <el-form :model="form" ref="form" label-width="90px" class="demo-ruleForm">
|
|
|
+ <el-form :model="form" ref="form" :rules="rules" label-width="90px" class="demo-ruleForm">
|
|
|
<trade-card title="基础信息" styleIocup="color:#4b9fe9">
|
|
|
<el-row>
|
|
|
<el-col :span="10">
|
|
@@ -43,7 +43,7 @@
|
|
|
style="width: 100%;"
|
|
|
type="date" size="small"
|
|
|
:disabled="true"
|
|
|
- value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
placeholder="选择开票日期">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
@@ -276,7 +276,7 @@
|
|
|
style="width: 100%;"
|
|
|
type="date" size="small"
|
|
|
:disabled="editSave"
|
|
|
- value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
placeholder="选择开票日期">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
@@ -488,25 +488,27 @@
|
|
|
</el-row>
|
|
|
</trade-card>
|
|
|
<el-card style="margin-top: 10px">
|
|
|
- <div style="margin-bottom: 10px;display: flex;justify-content: space-between">
|
|
|
- <el-button size="small" type="danger" >删 除</el-button>
|
|
|
- <!--<div>-->
|
|
|
- <!-- <el-button size="small" type="primary">新 建</el-button>-->
|
|
|
- <!-- <el-button size="small" type="danger">删 除</el-button>-->
|
|
|
- <!--</div>-->
|
|
|
- <!--<div>-->
|
|
|
- <!-- <el-button size="small" type="primary" plain>全部选择</el-button>-->
|
|
|
- <!-- <el-button size="small" type="primary" plain>确认费用</el-button>-->
|
|
|
- <!--</div>-->
|
|
|
- </div>
|
|
|
- <fininvoicesitems :tableData="tableData"
|
|
|
- :handleSelectionData="handleSelectionData"
|
|
|
- @handleSelectionChange="handleSelectionChange"
|
|
|
- @deletefun="detailsdeletionfun">
|
|
|
- </fininvoicesitems>
|
|
|
+ <el-tabs v-model="detailTabs" type="card">
|
|
|
+ <el-tab-pane label="费用明细" name="first">
|
|
|
+ <div style="margin-bottom: 10px;display: flex;">
|
|
|
+ <el-button size="small" type="primary" @click="invoicingDialogfun" >生成开票</el-button>
|
|
|
+ <el-button size="small" type="danger" @click="batchDeletefun" >批量删除</el-button>
|
|
|
+ </div>
|
|
|
+ <fininvoicesitems :tableData="tableData"
|
|
|
+ :handleSelectionData="handleSelectionData"
|
|
|
+ :editSave="editSave"
|
|
|
+ @handleSelectionChange="handleSelectionChange"
|
|
|
+ @deletefun="detailsdeletionfun">
|
|
|
+ </fininvoicesitems>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="开票明细" name="second">
|
|
|
+ <fininvoiceitemdetail :tableData="InvoicingList"
|
|
|
+ :handleSelectionData="[]">
|
|
|
+ </fininvoiceitemdetail>
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
</el-card>
|
|
|
-
|
|
|
- <el-card class="box-card">
|
|
|
+ <el-card class="box-card" style="margin-top: 10px">
|
|
|
<el-row>
|
|
|
<el-col :span="5">
|
|
|
<el-form-item label="业务编号" prop="billNo">
|
|
@@ -565,13 +567,29 @@
|
|
|
</el-card>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
+
|
|
|
+ <!--开票弹窗-->
|
|
|
+ <el-dialog
|
|
|
+ title="打印"
|
|
|
+ :visible.sync="InvoicingDialog"
|
|
|
+ append-to-body
|
|
|
+ width="70%"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :destroy-on-close="true"
|
|
|
+ :close-on-press-escape="false"
|
|
|
+ v-dialog-drag>
|
|
|
+ <span>开票弹窗</span>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import fininvoicesitems from "@/views/iosBasicData/fininvoicesApplyfor/assembly/fininvoicesitems.vue";
|
|
|
+import fininvoiceitemdetail from "@/views/iosBasicData/fininvoicesApplyfor/assembly/fininvoiceitemdetail.vue";
|
|
|
import {getRateList} from "@/api/iosBasicData/rateManagement";
|
|
|
-import {finstlbillslistAccBillV1} from "@/api/iosBasicData/finstlbills";
|
|
|
+import {finstlbillsitemsRemove, finstlbillslistAccBillV1} from "@/api/iosBasicData/finstlbills";
|
|
|
import {bcorpsbankList, corpsinvoiceheaderList, getBcorpsList} from "@/api/iosBasicData/bcorps";
|
|
|
import {bportsList} from "@/api/iosBasicData/bports";
|
|
|
import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
|
|
@@ -584,14 +602,17 @@ import {
|
|
|
import {getWorkDicts} from "@/api/system/dictbiz";
|
|
|
|
|
|
export default {
|
|
|
- components:{ SearchQuery, fininvoicesitems},
|
|
|
+ components:{ SearchQuery, fininvoicesitems,fininvoiceitemdetail},
|
|
|
data() {
|
|
|
return {
|
|
|
+ InvoicingDialog:false, // 开票弹窗的打开和关闭
|
|
|
+ detailTabs:'first',
|
|
|
appendType:'检索',
|
|
|
pageLoading:false, // 全屏加载
|
|
|
saveLoading:false, // 按钮加载
|
|
|
form:{},
|
|
|
- tableData:[], // 从表数据
|
|
|
+ tableData:[], // 费用明细数据
|
|
|
+ InvoicingList:[], // 开票明细数据
|
|
|
handleSelectionData:[], // 选择的数据
|
|
|
corpData:[], // 结算单位数据
|
|
|
invCorpData:[], // 开票单位
|
|
@@ -612,6 +633,20 @@ export default {
|
|
|
polData:[], // 装货港
|
|
|
invCurCodeData:[], // 发票币种
|
|
|
invTypeData:[], // 发票类型
|
|
|
+ rules: {
|
|
|
+ corpCnName: [
|
|
|
+ {required: true, message: '请输入付费对象', trigger: 'blur'},
|
|
|
+ ],
|
|
|
+ invoiceDate: [
|
|
|
+ {required: true, message: '请输入开票日期', trigger: 'blur'},
|
|
|
+ ],
|
|
|
+ exrate: [
|
|
|
+ {required: true, message: '请输入导入汇率', trigger: 'blur'},
|
|
|
+ ],
|
|
|
+ taxType: [
|
|
|
+ {required: true, message: '请输入所属税种', trigger: 'blur'},
|
|
|
+ ],
|
|
|
+ },
|
|
|
}
|
|
|
},
|
|
|
props:{
|
|
@@ -621,6 +656,38 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods:{
|
|
|
+ invoicingDialogfun(){
|
|
|
+ this.InvoicingDialog = true
|
|
|
+ },
|
|
|
+ // 批量删除
|
|
|
+ batchDeletefun(){
|
|
|
+ if (this.handleSelectionData.length == 0) {
|
|
|
+ return this.$message.warning('请选择要删除的数据')
|
|
|
+ }
|
|
|
+ this.$confirm("确定将选择数据删除?", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning"
|
|
|
+ }).then(()=>{
|
|
|
+ // 获取有id 的数据
|
|
|
+ const itemsWithId = this.handleSelectionData.filter(item => item.hasOwnProperty('id'));
|
|
|
+ let arrIds = itemsWithId.map(item=>item.id) // 获取id 数据
|
|
|
+ // 把选中的删除掉
|
|
|
+ this.handleSelectionData.forEach((item)=>{
|
|
|
+ for (let index in this.tableData) {
|
|
|
+ if (item.accBillNo == this.tableData[index].accBillNo) {
|
|
|
+ this.tableData.splice(index,1)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // 有id 的处理
|
|
|
+ if(itemsWithId.length != 0) {
|
|
|
+ fininvoicesitemsRemove(arrIds.join(',')).then(res=>{
|
|
|
+ this.$message.success('操作成功')
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
// 单个删除
|
|
|
detailsdeletionfun(id){
|
|
|
this.$confirm("确定将选择数据删除?", {
|
|
@@ -651,7 +718,24 @@ export default {
|
|
|
this.$set(this.form,'corpId',item.id)
|
|
|
this.$set(this.form,'corpCnName',item.cnName)
|
|
|
this.$set(this.form,'corpEnName',item.enName)
|
|
|
- this.bcorpsbankListfun() // 查银行数据
|
|
|
+ bcorpsbankList(1,10,{pid:this.form.corpId}).then(res=>{
|
|
|
+ if (res.data.data.records.length != 0) {
|
|
|
+ this.$set(this.form,'bankReceiptAccountNo',res.data.data.records[0].accountNo)
|
|
|
+ this.$set(this.form,'bankReceiptBankName',res.data.data.records[0].accountBank)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // 带出开票单位数据
|
|
|
+ corpsinvoiceheaderList(1,20,{pid:this.form.corpId}).then(res=>{
|
|
|
+ if (res.data.data.records.length != 0) {
|
|
|
+ this.$set(this.form,'invCorpId',res.data.data.records[0].id)
|
|
|
+ this.$set(this.form,'invCorpCnName',res.data.data.records[0].invoiceHeader)
|
|
|
+ this.$set(this.form,'invCorpTaxNo',res.data.data.records[0].uscc) // 税号
|
|
|
+ this.$set(this.form,'invCorpAccountBankUsd',res.data.data.records[0].accountBankUsd) // 美元银行
|
|
|
+ this.$set(this.form,'invCorpAccountNoUsd',res.data.data.records[0].accountNoUsd) // 美元账户
|
|
|
+ this.$set(this.form,'invCorpAccountBankCny',res.data.data.records[0].accountBankUsd) // 人民币银行
|
|
|
+ this.$set(this.form,'invCorpAccountNoCny',res.data.data.records[0].accountNoUsd) // 人民币账户
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -702,21 +786,34 @@ export default {
|
|
|
},
|
|
|
// 保存按钮事件
|
|
|
editCustomer(){
|
|
|
- // 开票单位
|
|
|
- if (!this.form.corpId) {
|
|
|
- this.$message.warning('请选择开票单位');
|
|
|
- return
|
|
|
- }
|
|
|
- // 进项 销项
|
|
|
- this.form.type = '销项'
|
|
|
- this.form.billNoFormat = 'FPSQ'
|
|
|
- this.form.businessTypeCode = 'FPSQ'
|
|
|
- this.form.businessTypes = this.form.businessTypes?this.form.businessTypes.join(','):''
|
|
|
- if (!this.form.id) {
|
|
|
- this.form.finInvoicesItemsList = this.handleSelectionData
|
|
|
- }
|
|
|
- this.saveLoading = true
|
|
|
- this.fininvoicesSubmitfun(this.form)
|
|
|
+ this.$refs.form.validate((valid) => {
|
|
|
+ if (!valid) return
|
|
|
+ if (!this.form.id) {
|
|
|
+ // 是否选择从表数据
|
|
|
+ if (this.handleSelectionData.length == 0) {
|
|
|
+ this.$message.warning('请选择结算数据');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.form.type = '销项'
|
|
|
+ this.form.billNoFormat = 'FPSQ'
|
|
|
+ this.form.businessTypeCode = 'FPSQ'
|
|
|
+ this.form.businessTypes = this.form.businessTypes?this.form.businessTypes.join(','):''
|
|
|
+ //开票日期
|
|
|
+ if(this.form.invoiceDate) {
|
|
|
+ this.form.invoiceDate = this.form.invoiceDate.slice(0,10) + ' 00:00:00'
|
|
|
+ }
|
|
|
+ this.form.finInvoicesItemsList = this.handleSelectionData.map(item=>{
|
|
|
+ if (item.currentCurCode == 'CNY') {
|
|
|
+ item.currentAmount = item.currentAmountCNY
|
|
|
+ }else {
|
|
|
+ item.currentAmount = item.currentAmountUSD
|
|
|
+ }
|
|
|
+ return item
|
|
|
+ })
|
|
|
+ this.saveLoading = true
|
|
|
+ this.fininvoicesSubmitfun(this.form)
|
|
|
+ })
|
|
|
},
|
|
|
// 检索
|
|
|
finstlbillslistAccBillV1fun(type){
|
|
@@ -724,11 +821,13 @@ export default {
|
|
|
this.$message.warning('请选择结算单位');
|
|
|
return
|
|
|
}
|
|
|
- delete this.form.id
|
|
|
let obj = {}
|
|
|
+ //开票日期
|
|
|
+ if(this.form.invoiceDate) {
|
|
|
+ obj.invoiceDate = this.form.invoiceDate.slice(0,10) + ' 00:00:00'
|
|
|
+ }
|
|
|
obj.type = '3'
|
|
|
obj.corpCnName = this.form.corpId // 结算单位
|
|
|
- obj.invoiceDate = this.form.invoiceDate //开票日期
|
|
|
obj.billNo = this.form.bookingNo // 账单号
|
|
|
obj.businessBillNo = this.form.billNo // 业务编号
|
|
|
obj.mblno = this.form.mblno // 主单编号
|
|
@@ -738,16 +837,43 @@ export default {
|
|
|
obj.curCode = this.form.curCode // 币种
|
|
|
obj.businessType = this.form.businessTypes?this.form.businessTypes.join(','):'' // 业务类型
|
|
|
finstlbillslistAccBillV1(obj).then(res=>{
|
|
|
- this.tableData = res.data.data.map((item,index)=>{
|
|
|
+ let arr = res.data.data.map((item,index)=>{
|
|
|
item.lineNo = Number(index) + 1 // 行号
|
|
|
item.accBillId = item.id
|
|
|
item.accBillNo = item.billNo
|
|
|
item.accDate = item.createTime
|
|
|
- // 本次发票金额
|
|
|
- item.currentAmount = (Number(item.amount) - Number(item.stlTtlAmount) - Number(item.appliedAmount)).toFixed(2)
|
|
|
+ item.currentCurCode = item.curCode
|
|
|
+ item.currentExrate = item.exrate
|
|
|
+ if (item.currentCurCode == 'CNY') {
|
|
|
+ // 本次发票金额
|
|
|
+ item.currentAmountCNY = (Number(item.amount) - Number(item.stlTtlAmount) - Number(item.appliedAmount)).toFixed(2)
|
|
|
+ }else {
|
|
|
+ // 本次发票金额
|
|
|
+ item.currentAmountUSD = (Number(item.amount) - Number(item.stlTtlAmount) - Number(item.appliedAmount)).toFixed(2)
|
|
|
+ }
|
|
|
delete item.id
|
|
|
return item
|
|
|
})
|
|
|
+ if (type == '追加') {
|
|
|
+ let a = [...this.tableData,...arr,]
|
|
|
+ this.tableData = a.filter((obj, index) => {
|
|
|
+ return a.findIndex((elem) => {
|
|
|
+ return elem.accBillNo === obj.accBillNo
|
|
|
+ }) === index;
|
|
|
+ });
|
|
|
+ }else {
|
|
|
+ // 获取有id 的数据
|
|
|
+ const itemsWithId = this.tableData.filter(item => item.hasOwnProperty('id'));
|
|
|
+ let arrIds = itemsWithId.map(item=>item.id) // 获取id 数据
|
|
|
+ // 有id 的处理
|
|
|
+ if(itemsWithId.length != 0) {
|
|
|
+ fininvoicesitemsRemove(arrIds.join(',')).then(res=>{
|
|
|
+ this.$message.success('操作成功')
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.tableData = arr
|
|
|
+ }
|
|
|
+
|
|
|
})
|
|
|
},
|
|
|
// 保存接口
|
|
@@ -764,7 +890,15 @@ export default {
|
|
|
fininvoicesDetail(id).then(res=>{
|
|
|
this.form = res.data.data
|
|
|
this.form.businessTypes = this.form.businessTypes?this.form.businessTypes.split(','):[] // 业务类型转换成数组显示
|
|
|
- this.tableData = this.form.finInvoicesItemsList
|
|
|
+ this.tableData = this.form.finInvoicesItemsList.map(item=>{
|
|
|
+ if (item.currentCurCode == 'CNY') {
|
|
|
+ item.currentAmountCNY = item.currentAmount
|
|
|
+ }else {
|
|
|
+ item.currentAmountUSD = item.currentAmount
|
|
|
+ }
|
|
|
+ return item
|
|
|
+ })
|
|
|
+ this.InvoicingList = this.form.finInvoiceItemDetailList
|
|
|
this.pageLoading = false
|
|
|
})
|
|
|
},
|
|
@@ -894,6 +1028,6 @@ export default {
|
|
|
}
|
|
|
.flexBoxRight {
|
|
|
flex: 3;
|
|
|
- padding-bottom: 40px;
|
|
|
+ //padding-bottom: 40px;
|
|
|
}
|
|
|
</style>
|