This commit is contained in:
linfso 2024-08-15 14:14:12 +08:00
parent a56a3b7873
commit 3758b46b70
6 changed files with 162 additions and 63 deletions

View File

@ -3,7 +3,7 @@
<XdTable v-loading="loading"
border stripe
size="mini"
storageName="emisSettleInvoiceChRecordList_main_240702"
storageName="emisSettleInvoiceChRecordList_main_opendo_240702"
:data="emisSettleInvoiceChRecordList"
:showSearch.sync="showSearch"
:queryParams="queryParams"
@ -57,6 +57,16 @@
@click="handleDelete"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-money"
size="mini"
:disabled="single"
@click="handleInvalid"
>废弃</el-button>
</el-col>
<!-- v-hasPermi="['emis:emisSettleInvoiceChRecord:remove']" -->
<!-- <el-col :span="1.5">
@ -94,7 +104,7 @@
<el-tag v-if="scope.row.openChStatus==0" type="info" >未发送</el-tag>
<el-tag v-if="scope.row.openChStatus==1" type="info" >已发送</el-tag>
<el-tag v-if="scope.row.openChStatus==2" type="success" >开票成功</el-tag>
<el-tag v-if="scope.row.openChStatus==3" type="error" >开发失败</el-tag>
<el-tag v-if="scope.row.openChStatus==3" type="error" >发票废弃</el-tag>
</template>
</el-table-column>
<el-table-column :label="$t('开票金额')" align="center" prop="openMoney" width="100" :show-overflow-tooltip="true" />
@ -120,17 +130,8 @@
<el-table-column :label="$t('发票号')" align="center" prop="invoiceNo" width="100" :show-overflow-tooltip="true" />
<el-table-column :label="$t('发票文件')" align="center" prop="filePath" min-width="170" :show-overflow-tooltip="true">
<template slot-scope="scope">
<!-- <el-button
v-if="scope.row.openChStatus=='2'"
type="primary"
plain
icon="el-icon-download"
size="mini"
@click="handleDownPDF(scope.row)"
>下载发票</el-button> -->
<el-button
v-if="scope.row.invoiceStatus=='2'"
v-if="scope.row.openChStatus=='2'"
type="primary"
plain
icon="el-icon-document-copy"
@ -350,7 +351,20 @@ export default {
save_link.download = name;
save_link.click();
},
handleInvalid(row){
const ids = row.id || this.ids;
this.$modal.confirm('是否废弃').then(function() {
let postForm={
id:ids[0],
openChStatus:'3'
}
return updateEmisSettleInvoiceChRecord(postForm);
}).then(() => {
this.getList();
this.$modal.msgSuccess("操作成功");
}).catch(() => {});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;

View File

@ -19,12 +19,13 @@
<elDateAdvPicker placeholder="开票时间" v-model="dateTimeRange" style="z-index:9999;width:300px" ></elDateAdvPicker>
</el-form-item>
<el-form-item :label="$t('开票状态')" prop="openBillStatus">
<el-select clearable v-model="queryParams.openBillStatus" placeholder="开票状态">
<el-option key="1" label="已开票" value="1"></el-option>
<el-option key="0" label="未开票" value="0"></el-option>
<el-option key="3" label="不开票" value="3"></el-option>
<el-option key="2" label="部分开票" value="2"></el-option>
<el-form-item :label="$t('开票状态')" prop="openChStatus">
<el-select clearable v-model="queryParams.openChStatus" placeholder="开票状态">
<el-option key="0" label="未发送" value="0"></el-option>
<el-option key="1" label="已发送" value="1"></el-option>
<el-option key="2" label="开票成功" value="2"></el-option>
<el-option key="3" label="开票失败" value="3"></el-option>
<el-option key="-1" label="发送异常" value="-1"></el-option>
</el-select>
</el-form-item>
@ -151,6 +152,28 @@
v-hasPermi="['emis:emisSettleInvoiceChRecord:remove']"
>删除</el-button>
</el-col> -->
<!-- v-hasPermi="['emis:emisSettleBill:edit']" -->
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-money"
size="mini"
:disabled="single"
@click="handlePayRecord"
>收款</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-money"
size="mini"
:disabled="single"
@click="handleInvalid"
>废弃</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
@ -186,7 +209,7 @@
<el-tag v-if="scope.row.openChStatus==0" type="info" >未发送</el-tag>
<el-tag v-if="scope.row.openChStatus==1" type="info" >已发送</el-tag>
<el-tag v-if="scope.row.openChStatus==2" type="success" >开票成功</el-tag>
<el-tag v-if="scope.row.openChStatus==3" type="error" >开票失败</el-tag>
<el-tag v-if="scope.row.openChStatus==3" type="error" >开票作废</el-tag>
</template>
</el-table-column>
@ -204,9 +227,6 @@
<el-table-column :label="$t('快递单号')" align="center" prop="mddh" width="80" :show-overflow-tooltip="true" />
<el-table-column :label="$t('业务员')" align="center" prop="salemen" width="80" :show-overflow-tooltip="true" />
<el-table-column :label="$t('开票金额')" align="center" prop="openMoney" width="80" :show-overflow-tooltip="true" />
<el-table-column :label="$t('公司抬头')" align="center" prop="companyName" width="170" :show-overflow-tooltip="true" />
<el-table-column :label="$t('税号')" align="center" prop="companyTaxNo" width="170" :show-overflow-tooltip="true" />
@ -226,7 +246,20 @@
<!-- <el-table-column :label="$t('销方联系人')" align="center" prop="salerContact" width="100" /> -->
<!-- <el-table-column :label="$t('销方联系电话')" align="center" prop="salerPhone" width="100" /> -->
<el-table-column :label="$t('发票号')" align="center" prop="invoiceNo" width="100" :show-overflow-tooltip="true" />
<el-table-column :label="$t('pdf下载路径')" align="center" prop="filePath" width="150" :show-overflow-tooltip="true" />
<!-- <el-table-column :label="$t('pdf下载路径')" align="center" prop="filePath" width="150" :show-overflow-tooltip="true" /> -->
<el-table-column :label="$t('发票文件')" align="center" prop="filePath" min-width="170" :show-overflow-tooltip="true">
<template slot-scope="scope">
<el-button
v-if="scope.row.openChStatus=='2'"
type="primary"
plain
icon="el-icon-document-copy"
size="mini"
@click="handleDownPDF(scope.row,$event)"
>复制发票地址</el-button>
</template>
</el-table-column>
<!-- <el-table-column :label="$t('qr路径')" align="center" prop="qrPath" width="100" /> -->
<el-table-column :label="$t('操作人')" align="center" prop="opManName" width="100" />
<el-table-column :label="$t('操作时间')" align="center" prop="opDate" width="170" :show-overflow-tooltip="true"/>
@ -249,6 +282,10 @@
</XdTable>
<el-dialog :title="titleForm" :visible.sync="openForm" width="70%" :destroy-on-close="true" v-dialogDrag append-to-body :close-on-click-modal="false">
<PayRecordInputByInvoice :reqId="currentId" @on-changed="handleFormChanged" @on-cancel="cancelForm"></PayRecordInputByInvoice>
</el-dialog>
</XdPageContainer>
</template>
@ -260,13 +297,15 @@ import {timeDiffTime,timeFormat} from '@/utils/dateUtils'
import PayeePicker from '@/views/emis/EmisBaseTools/PayeePicker.vue';
import SalemanPicker from '@/views/emis/EmisBaseTools/SalemanPicker.vue';
import EmisMonthpayAccountPicker from '@/views/emis/EmisBaseTools/EmisMonthpayAccountPicker.vue';
import PayRecordInputByInvoice from '@/views/emis/emisSettlePayRecord/panel/PayRecordInputByInvoice.vue';
export default {
name: "EmisSettleInvoiceChRecord",
components: {
elDateAdvPicker,
emisSettleInvoiceChRecordForm,
PayeePicker,SalemanPicker,EmisMonthpayAccountPicker
PayeePicker,SalemanPicker,EmisMonthpayAccountPicker,
PayRecordInputByInvoice
},
dicts: ['emis_invoice_ch_type'
],
@ -411,6 +450,59 @@ export default {
this.queryParams.isAsc = column.order;
this.getList();
},
handlePayRecord(row){
this.currentId= row.id || this.ids;
this.openForm = true;
this.titleForm = "收款核销";
},
handleInvalid(row){
const ids = row.id || this.ids;
this.$modal.confirm('是否废弃').then(function() {
// return delEmisSettleInvoiceChRecord(ids);
let postForm={
id:ids[0],
openChStatus:'3'
}
return updateEmisSettleInvoiceChRecord(postForm);
}).then(() => {
this.getList();
this.$modal.msgSuccess("操作成功");
}).catch(() => {});
},
handleDownPDF(row) {
let downUrl=row.filePath;
if (navigator.clipboard && window.isSecureContext) {
// navigator clipboard 向剪贴板写文本
this.$modal.msgSuccess('复制成功')
return navigator.clipboard.writeText(downUrl)
} else {
// 创建text area
const textArea = document.createElement('textarea')
textArea.value = downUrl
// 使text area不在viewport,同时设置不可见
document.body.appendChild(textArea)
textArea.focus()
textArea.select()
this.$modal.msgSuccess('复制成功')
return new Promise((res, rej) => {
// 执行复制命令并移除文本框
document.execCommand('copy') ? res() : rej()
textArea.remove()
})
}
},
removeEndChar(str,char, type) {
if (char) {
if (type == 'left') {
return str.replace(new RegExp('^\\'+char+'+', 'g'), '');
} else if (type == 'right') {
return str.replace(new RegExp('\\'+char+'+$', 'g'), '');
}
return str.replace(new RegExp('^\\'+char+'+|\\'+char+'+$', 'g'), '');
}
return str.replace(/^\s+|\s+$/g, '');
},
/** 新增按钮操作 */
handleAdd(row) {
this.currentId=null;

View File

@ -471,6 +471,8 @@ export default {
})
}
}else{
this.$modal.msgError('复制失败,无可用发票文件');
}
});
},

View File

@ -29,13 +29,9 @@
<el-table-column :label="$t('缴款客户')" align="center" prop="payMan" width="150" :show-overflow-tooltip="true" />
<!-- <el-table-column :label="$t('月结编号')" align="center" prop="payManCode" width="100" :show-overflow-tooltip="true"/> -->
<el-table-column :label="$t('支付类型')" align="center" prop="payType" width="100" >
<template slot-scope="scope">
<span v-if="scope.row.payType == '1'">微信支付</span>
<span v-if="scope.row.payType == '2'">支付宝支付</span>
<span v-if="scope.row.payType == '3'">企业微信收款</span>
<span v-if="scope.row.payType == '4'">对公付款</span>
<span v-if="scope.row.payType == '5'">其他</span>
</template>
<template slot-scope="scope">
<dict-tag :options="dict.type.emis_settlebill_pay_type" :value="scope.row.payType"/>
</template>
</el-table-column>
<el-table-column :label="$t('收付类型')" align="center" prop="recType" width="80" >
@ -88,8 +84,7 @@ export default {
}
},
components: { elDateSimplePicker },
dicts: [
],
dicts: ['emis_settlebill_pay_type'],
data() {
return {
// 遮罩层

View File

@ -1847,8 +1847,6 @@ methods: {
async handleCalcFeeItem(row){
if(row!=null && this.form.settlementWeight!=null){
// console.log("===>calcExp====>",row.calcExp);
// console.log("===>calcExp111==row==>",row);
if(row.calcExp&&row.calcExp!='undefined'){
let expr=row.calcExp;
// 如果公式包含变量,使用变量进行计算
@ -1876,13 +1874,6 @@ methods: {
}
let feeRemark="";
let totalFee=Number(0);
if(this.form.feeItems&&this.form.feeItems.length>0){
let len=this.form.feeItems.length;
@ -1898,14 +1889,9 @@ methods: {
}
newFee=newFee.toFixed(2);
// feeRemark= feeRemark+item.feeName+'('+item.currency+"):" + item.realFee+",";
// feeRemark = feeRemark.slice(0, -1);
totalFee=Number(totalFee)+Number(newFee);
}
}
// this.form.feeRemark=feeRemark;
this.form.freight = totalFee.toFixed(2);
},
// 计算体积重量

View File

@ -1731,27 +1731,42 @@ export default {
},
async handleCalcFeeItem(row){
if(row!=null){
if(row.calcExp){
if(row!=null && this.form.settlementWeight!=null){
if(row.calcExp&&row.calcExp!='undefined'){
let expr=row.calcExp;
expr=expr.replace("s",row.initialWeightFee);
expr=expr.replace("d",row.addWeightPrice);
expr=expr.replace("w",this.form.settlementWeight);
row.realFee=parseFloat(eval(expr)).toFixed(2);
// 如果公式包含变量,使用变量进行计算
if(expr.indexOf('s')!=-1 || expr.indexOf('d')!=-1){
expr=expr.replace("s",row.initialWeightFee);
expr=expr.replace("d",row.addWeightPrice);
expr=expr.replace("w",this.form.settlementWeight);
row.realFee=parseFloat(eval(expr)).toFixed(2);
}else{
//
}
}else{
let expr="s+w*d";
if(row.initialWeightFee>0||row.addWeightPrice>0){
expr=expr.replace("s",row.initialWeightFee);
expr=expr.replace("d",row.addWeightPrice);
expr=expr.replace("w",this.form.settlementWeight);
row.realFee=parseFloat(eval(expr)).toFixed(2);
// console.log("===>calcExp222==expr==>",expr);
// console.log("===>calcExp222==row==>",row);
}
}
}
let feeRemark="";
let totalFee=Number(0);
if(this.form.feeItems&&this.form.feeItems.length>0){
let len=this.form.feeItems.length;
for(let i=0;i<len;i++){
let item=this.form.feeItems[i];
let newFee=item.realFee;
let newFee=Number(item.realFee);
if(item.currency&&item.currency !='CNY'){
let res= await getValidExchangeRate({from:item.currency,to:'CNY'});
console.log("====>res===>",res);
if(res.code==200){
newFee=newFee*Number(res.data);
item.remark="汇率:"+res.data+","+newFee+"(CNY)"
@ -1759,16 +1774,11 @@ export default {
}
newFee=newFee.toFixed(2);
feeRemark= feeRemark+item.feeName+'('+item.currency+"):" + item.realFee+",";
totalFee=Number(totalFee)+Number(newFee);
}
}
this.form.feeRemark=feeRemark;
this.form.freight = totalFee.toFixed(2);
},
},
calcBillFee(){
if(this.form.settlementWeight