发票管理,在线预览功能

main
JilingLee 1 year ago
parent 93897b82c6
commit 90c0227064

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建发票
export function createInvoices(data) {
return request({
url: '/accounting/invoices/create',
method: 'post',
data: data
})
}
// 更新发票
export function updateInvoices(data) {
return request({
url: '/accounting/invoices/update',
method: 'put',
data: data
})
}
// 删除发票
export function deleteInvoices(id) {
return request({
url: '/accounting/invoices/delete?id=' + id,
method: 'delete'
})
}
// 获得发票
export function getInvoices(id) {
return request({
url: '/accounting/invoices/get?id=' + id,
method: 'get'
})
}
// 获得发票分页
export function getInvoicesPage(query) {
return request({
url: '/accounting/invoices/page',
method: 'get',
params: query
})
}
// 导出发票 Excel
export function exportInvoicesExcel(query) {
return request({
url: '/accounting/invoices/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

@ -96,3 +96,35 @@ new Vue({
store, store,
render: h => h(App) render: h => h(App)
}) })
// 定义全局方法
Vue.prototype.base64Encode = function(str) {
const base64EncodeChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
let out = '', i = 0, len = str.length;
let c1, c2, c3;
while (i < len) {
c1 = str.charCodeAt(i++) & 0xff;
if (i == len) {
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt((c1 & 0x3) << 4);
out += '==';
break;
}
c2 = str.charCodeAt(i++);
if (i == len) {
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt((c2 & 0xF) << 2);
out += '=';
break;
}
c3 = str.charCodeAt(i++);
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
out += base64EncodeChars.charAt(c3 & 0x3F);
}
return out;
}

@ -0,0 +1,752 @@
<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="凭证id一个凭证对应多个电子发票" prop="voucherId">
<el-input v-model="queryParams.voucherId" placeholder="请输入凭证id一个凭证对应多个电子发票" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="发票代码" prop="invoiceCode">
<el-input v-model="queryParams.invoiceCode" placeholder="请输入发票代码" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="发票号码" prop="invoiceNum">
<el-input v-model="queryParams.invoiceNum" placeholder="请输入发票号码" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="大写金额" prop="amountinWords">
<el-input v-model="queryParams.amountinWords" placeholder="请输入大写金额" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="单价" prop="price">
<el-input v-model="queryParams.price" placeholder="请输入单价" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="合计税额" prop="totalTax">
<el-input v-model="queryParams.totalTax" placeholder="请输入合计税额" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="税率" prop="taxRate">
<el-input v-model="queryParams.taxRate" placeholder="请输入税率" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="金额" prop="totalAmount">
<el-input v-model="queryParams.totalAmount" placeholder="请输入金额" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="税额" prop="commodityTax">
<el-input v-model="queryParams.commodityTax" placeholder="请输入税额" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="价税合计" prop="commodityAmount">
<el-input v-model="queryParams.commodityAmount" placeholder="请输入价税合计" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="小写价税合计" prop="amountinFiguers">
<el-input v-model="queryParams.amountinFiguers" placeholder="请输入小写价税合计" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="开票人" prop="foteDrawer">
<el-input v-model="queryParams.foteDrawer" placeholder="请输入开票人" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="销方地址电话" prop="sellerAddress">
<el-input v-model="queryParams.sellerAddress" placeholder="请输入销方地址电话" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="服务条数" prop="commodityNum">
<el-input v-model="queryParams.commodityNum" placeholder="请输入服务条数" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="销方纳税识别号" prop="sellerRegisterNum">
<el-input v-model="queryParams.sellerRegisterNum" placeholder="请输入销方纳税识别号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="报送状态" prop="machineCode">
<el-input v-model="queryParams.machineCode" placeholder="请输入报送状态" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-model="queryParams.remarks" placeholder="请输入备注" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="销方开户行及账号" prop="sellerBank">
<el-input v-model="queryParams.sellerBank" placeholder="请输入销方开户行及账号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="校验码" prop="checkCode">
<el-input v-model="queryParams.checkCode" placeholder="请输入校验码" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="开票日期" prop="invoiceDate">
<el-date-picker v-model="queryParams.invoiceDate" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" />
</el-form-item>
<el-form-item label="购方税号" prop="purchaserRegisterNum">
<el-input v-model="queryParams.purchaserRegisterNum" placeholder="请输入购方税号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="清单标志" prop="invoiceTypeOrg">
<el-input v-model="queryParams.invoiceTypeOrg" placeholder="请输入清单标志" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="密码区" prop="password">
<el-input v-model="queryParams.password" placeholder="请输入密码区" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="打印标志" prop="agent">
<el-input v-model="queryParams.agent" placeholder="请输入打印标志" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="购方开户行及账号" prop="purchaserBank">
<el-input v-model="queryParams.purchaserBank" placeholder="请输入购方开户行及账号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="复核人" prop="checker">
<el-input v-model="queryParams.checker" placeholder="请输入复核人" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="城市" prop="city">
<el-input v-model="queryParams.city" placeholder="请输入城市" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="购方公司名" prop="purchaserName">
<el-input v-model="queryParams.purchaserName" placeholder="请输入购方公司名" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="规格型号" prop="commodityType">
<el-select v-model="queryParams.commodityType" placeholder="请选择规格型号" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="报送日志" prop="province">
<el-input v-model="queryParams.province" placeholder="请输入报送日志" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="发票种类" prop="invoiceType">
<el-select v-model="queryParams.invoiceType" placeholder="请选择发票种类" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="发票联" prop="sheetNum">
<el-input v-model="queryParams.sheetNum" placeholder="请输入发票联" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="购方地址电话" prop="purchaserAddress">
<el-input v-model="queryParams.purchaserAddress" placeholder="请输入购方地址电话" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="部门" prop="commodityUnit">
<el-input v-model="queryParams.commodityUnit" placeholder="请输入部门" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="收款人" prop="payee">
<el-input v-model="queryParams.payee" placeholder="请输入收款人" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="主要商品名称" prop="commodityName">
<el-input v-model="queryParams.commodityName" placeholder="请输入主要商品名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="销方名称" prop="sellerName">
<el-input v-model="queryParams.sellerName" placeholder="请输入销方名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="审核状态0待审核1已审核2审核退回3未提交" prop="invoiceCheck">
<el-input v-model="queryParams.invoiceCheck" placeholder="请输入审核状态0待审核1已审核2审核退回3未提交" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="是否印章01" prop="invoiceSeal">
<el-input v-model="queryParams.invoiceSeal" placeholder="请输入是否印章01" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="发票综合代码" prop="invoiceQrcode">
<el-input v-model="queryParams.invoiceQrcode" placeholder="请输入发票综合代码" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="发票综合号码" prop="invoiceQrnum">
<el-input v-model="queryParams.invoiceQrnum" placeholder="请输入发票综合号码" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="二维码查验1查询相符,0查验不符" prop="qrCheckCode">
<el-input v-model="queryParams.qrCheckCode" placeholder="请输入二维码查验1查询相符,0查验不符" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="发票状态1正常0作废" prop="invoiceState">
<el-input v-model="queryParams.invoiceState" placeholder="请输入发票状态1正常0作废" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="作废日期" prop="printNum">
<el-input v-model="queryParams.printNum" placeholder="请输入作废日期" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="进销项标识0进项1销项" prop="inoutMark">
<el-input v-model="queryParams.inoutMark" placeholder="请输入进销项标识0进项1销项" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="作废标志0作废1启用" prop="invalidMark">
<el-input v-model="queryParams.invalidMark" placeholder="请输入作废标志0作废1启用" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="重复标识0已查重1有重复" prop="duplicateMark">
<el-input v-model="queryParams.duplicateMark" placeholder="请输入重复标识0已查重1有重复" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="验真0未验真1已验证" prop="checkTrue">
<el-input v-model="queryParams.checkTrue" placeholder="请输入验真0未验真1已验证" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="加密" prop="encrypt">
<el-input v-model="queryParams.encrypt" placeholder="请输入加密" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="制单人" prop="createBy">
<el-input v-model="queryParams.createBy" placeholder="请输入制单人" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" />
</el-form-item>
<el-form-item label="归档id一个归档id对应多个发票" prop="recordId">
<el-input v-model="queryParams.recordId" placeholder="请输入归档id一个归档id对应多个发票" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="业务实体id" prop="companyId">
<el-input v-model="queryParams.companyId" placeholder="请输入业务实体id" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="业务实体" prop="company">
<el-input v-model="queryParams.company" placeholder="请输入业务实体" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="所属部门id" prop="deptId">
<el-input v-model="queryParams.deptId" placeholder="请输入所属部门id" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="所属部门" prop="deptName">
<el-input v-model="queryParams.deptName" placeholder="请输入所属部门" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="用户id" prop="userId">
<el-input v-model="queryParams.userId" placeholder="请输入用户id" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="queryParams.remark" placeholder="请输入备注" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<!-- 操作工具栏 -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['accounting:invoices:create']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
v-hasPermi="['accounting:invoices:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table v-loading="loading" :data="list">
<el-table-column label="发票id" align="center" prop="id" />
<el-table-column label="凭证id一个凭证对应多个电子发票" align="center" prop="voucherId" />
<el-table-column label="文件地址" align="center" prop="fileUrl">
<template slot-scope="scope">
<el-button type="text" @click="openLink(scope.row.fileUrl)">
{{ scope.row.fileUrl }}
</el-button>
</template>
</el-table-column>
<el-table-column label="发票代码" align="center" prop="invoiceCode" />
<el-table-column label="发票号码" align="center" prop="invoiceNum" />
<el-table-column label="大写金额" align="center" prop="amountinWords" />
<el-table-column label="单价" align="center" prop="price" />
<el-table-column label="合计税额" align="center" prop="totalTax" />
<el-table-column label="税率" align="center" prop="taxRate" />
<el-table-column label="金额" align="center" prop="totalAmount" />
<el-table-column label="税额" align="center" prop="commodityTax" />
<el-table-column label="价税合计" align="center" prop="commodityAmount" />
<el-table-column label="小写价税合计" align="center" prop="amountinFiguers" />
<el-table-column label="开票人" align="center" prop="foteDrawer" />
<el-table-column label="销方地址电话" align="center" prop="sellerAddress" />
<el-table-column label="服务条数" align="center" prop="commodityNum" />
<el-table-column label="销方纳税识别号" align="center" prop="sellerRegisterNum" />
<el-table-column label="报送状态" align="center" prop="machineCode" />
<el-table-column label="备注" align="center" prop="remarks" />
<el-table-column label="销方开户行及账号" align="center" prop="sellerBank" />
<el-table-column label="校验码" align="center" prop="checkCode" />
<el-table-column label="开票日期" align="center" prop="invoiceDate" width="180">
<template v-slot="scope">
<span>{{ parseTime(scope.row.invoiceDate) }}</span>
</template>
</el-table-column>
<el-table-column label="购方税号" align="center" prop="purchaserRegisterNum" />
<el-table-column label="清单标志" align="center" prop="invoiceTypeOrg" />
<el-table-column label="密码区" align="center" prop="password" />
<el-table-column label="打印标志" align="center" prop="agent" />
<el-table-column label="购方开户行及账号" align="center" prop="purchaserBank" />
<el-table-column label="复核人" align="center" prop="checker" />
<el-table-column label="城市" align="center" prop="city" />
<el-table-column label="购方公司名" align="center" prop="purchaserName" />
<el-table-column label="规格型号" align="center" prop="commodityType" />
<el-table-column label="报送日志" align="center" prop="province" />
<el-table-column label="发票种类" align="center" prop="invoiceType" />
<el-table-column label="发票联" align="center" prop="sheetNum" />
<el-table-column label="购方地址电话" align="center" prop="purchaserAddress" />
<el-table-column label="部门" align="center" prop="commodityUnit" />
<el-table-column label="收款人" align="center" prop="payee" />
<el-table-column label="主要商品名称" align="center" prop="commodityName" />
<el-table-column label="销方名称" align="center" prop="sellerName" />
<el-table-column label="审核状态0待审核1已审核2审核退回3未提交" align="center" prop="invoiceCheck" />
<el-table-column label="是否印章01" align="center" prop="invoiceSeal" />
<el-table-column label="发票综合代码" align="center" prop="invoiceQrcode" />
<el-table-column label="发票综合号码" align="center" prop="invoiceQrnum" />
<el-table-column label="二维码查验1查询相符,0查验不符" align="center" prop="qrCheckCode" />
<el-table-column label="发票状态1正常0作废" align="center" prop="invoiceState" />
<el-table-column label="作废日期" align="center" prop="printNum" width="180">
<template v-slot="scope">
<span>{{ parseTime(scope.row.printNum) }}</span>
</template>
</el-table-column>
<el-table-column label="进销项标识0进项1销项" align="center" prop="inoutMark" />
<el-table-column label="作废标志0作废1启用" align="center" prop="invalidMark" />
<el-table-column label="重复标识0已查重1有重复" align="center" prop="duplicateMark" />
<el-table-column label="验真0未验真1已验证" align="center" prop="checkTrue" />
<el-table-column label="加密" align="center" prop="encrypt" />
<el-table-column label="制单人" align="center" prop="createBy" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template v-slot="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="归档id一个归档id对应多个发票" align="center" prop="recordId" />
<el-table-column label="业务实体id" align="center" prop="companyId" />
<el-table-column label="业务实体" align="center" prop="company" />
<el-table-column label="所属部门id" align="center" prop="deptId" />
<el-table-column label="所属部门" align="center" prop="deptName" />
<el-table-column label="用户id" align="center" prop="userId" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['accounting:invoices:update']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['accounting:invoices:delete']">删除</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/>
<!-- 对话框(添加 / 修改) -->
<el-dialog :title="title" :visible.sync="open" width="500px" v-dialogDrag append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="凭证id一个凭证对应多个电子发票" prop="voucherId">
<el-input v-model="form.voucherId" placeholder="请输入凭证id一个凭证对应多个电子发票" />
</el-form-item>
<el-form-item label="发票代码" prop="invoiceCode">
<el-input v-model="form.invoiceCode" placeholder="请输入发票代码" />
</el-form-item>
<el-form-item label="发票号码" prop="invoiceNum">
<el-input v-model="form.invoiceNum" placeholder="请输入发票号码" />
</el-form-item>
<el-form-item label="大写金额" prop="amountinWords">
<el-input v-model="form.amountinWords" placeholder="请输入大写金额" />
</el-form-item>
<el-form-item label="单价" prop="price">
<el-input v-model="form.price" placeholder="请输入单价" />
</el-form-item>
<el-form-item label="合计税额" prop="totalTax">
<el-input v-model="form.totalTax" placeholder="请输入合计税额" />
</el-form-item>
<el-form-item label="税率" prop="taxRate">
<el-input v-model="form.taxRate" placeholder="请输入税率" />
</el-form-item>
<el-form-item label="金额" prop="totalAmount">
<el-input v-model="form.totalAmount" placeholder="请输入金额" />
</el-form-item>
<el-form-item label="税额" prop="commodityTax">
<el-input v-model="form.commodityTax" placeholder="请输入税额" />
</el-form-item>
<el-form-item label="价税合计" prop="commodityAmount">
<el-input v-model="form.commodityAmount" placeholder="请输入价税合计" />
</el-form-item>
<el-form-item label="小写价税合计" prop="amountinFiguers">
<el-input v-model="form.amountinFiguers" placeholder="请输入小写价税合计" />
</el-form-item>
<el-form-item label="开票人" prop="foteDrawer">
<el-input v-model="form.foteDrawer" placeholder="请输入开票人" />
</el-form-item>
<el-form-item label="销方地址电话" prop="sellerAddress">
<el-input v-model="form.sellerAddress" placeholder="请输入销方地址电话" />
</el-form-item>
<el-form-item label="服务条数" prop="commodityNum">
<el-input v-model="form.commodityNum" placeholder="请输入服务条数" />
</el-form-item>
<el-form-item label="销方纳税识别号" prop="sellerRegisterNum">
<el-input v-model="form.sellerRegisterNum" placeholder="请输入销方纳税识别号" />
</el-form-item>
<el-form-item label="报送状态" prop="machineCode">
<el-input v-model="form.machineCode" placeholder="请输入报送状态" />
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="销方开户行及账号" prop="sellerBank">
<el-input v-model="form.sellerBank" placeholder="请输入销方开户行及账号" />
</el-form-item>
<el-form-item label="校验码" prop="checkCode">
<el-input v-model="form.checkCode" placeholder="请输入校验码" />
</el-form-item>
<el-form-item label="开票日期" prop="invoiceDate">
<el-date-picker clearable v-model="form.invoiceDate" type="date" value-format="timestamp" placeholder="选择开票日期" />
</el-form-item>
<el-form-item label="购方税号" prop="purchaserRegisterNum">
<el-input v-model="form.purchaserRegisterNum" placeholder="请输入购方税号" />
</el-form-item>
<el-form-item label="清单标志" prop="invoiceTypeOrg">
<el-input v-model="form.invoiceTypeOrg" placeholder="请输入清单标志" />
</el-form-item>
<el-form-item label="密码区" prop="password">
<el-input v-model="form.password" placeholder="请输入密码区" />
</el-form-item>
<el-form-item label="打印标志" prop="agent">
<el-input v-model="form.agent" placeholder="请输入打印标志" />
</el-form-item>
<el-form-item label="购方开户行及账号" prop="purchaserBank">
<el-input v-model="form.purchaserBank" placeholder="请输入购方开户行及账号" />
</el-form-item>
<el-form-item label="复核人" prop="checker">
<el-input v-model="form.checker" placeholder="请输入复核人" />
</el-form-item>
<el-form-item label="城市" prop="city">
<el-input v-model="form.city" placeholder="请输入城市" />
</el-form-item>
<el-form-item label="购方公司名" prop="purchaserName">
<el-input v-model="form.purchaserName" placeholder="请输入购方公司名" />
</el-form-item>
<el-form-item label="规格型号" prop="commodityType">
<el-select v-model="form.commodityType" placeholder="请选择规格型号">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="报送日志" prop="province">
<el-input v-model="form.province" placeholder="请输入报送日志" />
</el-form-item>
<el-form-item label="发票种类" prop="invoiceType">
<el-select v-model="form.invoiceType" placeholder="请选择发票种类">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="发票联" prop="sheetNum">
<el-input v-model="form.sheetNum" placeholder="请输入发票联" />
</el-form-item>
<el-form-item label="购方地址电话" prop="purchaserAddress">
<el-input v-model="form.purchaserAddress" placeholder="请输入购方地址电话" />
</el-form-item>
<el-form-item label="部门" prop="commodityUnit">
<el-input v-model="form.commodityUnit" placeholder="请输入部门" />
</el-form-item>
<el-form-item label="收款人" prop="payee">
<el-input v-model="form.payee" placeholder="请输入收款人" />
</el-form-item>
<el-form-item label="主要商品名称" prop="commodityName">
<el-input v-model="form.commodityName" placeholder="请输入主要商品名称" />
</el-form-item>
<el-form-item label="销方名称" prop="sellerName">
<el-input v-model="form.sellerName" placeholder="请输入销方名称" />
</el-form-item>
<el-form-item label="审核状态0待审核1已审核2审核退回3未提交" prop="invoiceCheck">
<el-input v-model="form.invoiceCheck" placeholder="请输入审核状态0待审核1已审核2审核退回3未提交" />
</el-form-item>
<el-form-item label="是否印章01" prop="invoiceSeal">
<el-input v-model="form.invoiceSeal" placeholder="请输入是否印章01" />
</el-form-item>
<el-form-item label="发票综合代码" prop="invoiceQrcode">
<el-input v-model="form.invoiceQrcode" placeholder="请输入发票综合代码" />
</el-form-item>
<el-form-item label="发票综合号码" prop="invoiceQrnum">
<el-input v-model="form.invoiceQrnum" placeholder="请输入发票综合号码" />
</el-form-item>
<el-form-item label="二维码查验1查询相符,0查验不符" prop="qrCheckCode">
<el-input v-model="form.qrCheckCode" placeholder="请输入二维码查验1查询相符,0查验不符" />
</el-form-item>
<el-form-item label="发票状态1正常0作废" prop="invoiceState">
<el-input v-model="form.invoiceState" placeholder="请输入发票状态1正常0作废" />
</el-form-item>
<el-form-item label="作废日期" prop="printNum">
<el-input v-model="form.printNum" placeholder="请输入作废日期" />
</el-form-item>
<el-form-item label="进销项标识0进项1销项" prop="inoutMark">
<el-input v-model="form.inoutMark" placeholder="请输入进销项标识0进项1销项" />
</el-form-item>
<el-form-item label="作废标志0作废1启用" prop="invalidMark">
<el-input v-model="form.invalidMark" placeholder="请输入作废标志0作废1启用" />
</el-form-item>
<el-form-item label="重复标识0已查重1有重复" prop="duplicateMark">
<el-input v-model="form.duplicateMark" placeholder="请输入重复标识0已查重1有重复" />
</el-form-item>
<el-form-item label="验真0未验真1已验证" prop="checkTrue">
<el-input v-model="form.checkTrue" placeholder="请输入验真0未验真1已验证" />
</el-form-item>
<el-form-item label="加密" prop="encrypt">
<el-input v-model="form.encrypt" placeholder="请输入加密" />
</el-form-item>
<el-form-item label="制单人" prop="createBy">
<el-input v-model="form.createBy" placeholder="请输入制单人" />
</el-form-item>
<el-form-item label="归档id一个归档id对应多个发票" prop="recordId">
<el-input v-model="form.recordId" placeholder="请输入归档id一个归档id对应多个发票" />
</el-form-item>
<el-form-item label="业务实体id" prop="companyId">
<el-input v-model="form.companyId" placeholder="请输入业务实体id" />
</el-form-item>
<el-form-item label="业务实体" prop="company">
<el-input v-model="form.company" placeholder="请输入业务实体" />
</el-form-item>
<el-form-item label="所属部门id" prop="deptId">
<el-input v-model="form.deptId" placeholder="请输入所属部门id" />
</el-form-item>
<el-form-item label="所属部门" prop="deptName">
<el-input v-model="form.deptName" placeholder="请输入所属部门" />
</el-form-item>
<el-form-item label="用户id" prop="userId">
<el-input v-model="form.userId" placeholder="请输入用户id" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { createInvoices, updateInvoices, deleteInvoices, getInvoices, getInvoicesPage, exportInvoicesExcel } from "@/api/accounting/invoices";
export default {
name: "Invoices",
components: {
},
data() {
return {
//
loading: true,
//
exportLoading: false,
//
showSearch: true,
//
total: 0,
//
list: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNo: 1,
pageSize: 10,
voucherId: null,
invoiceCode: null,
invoiceNum: null,
amountinWords: null,
price: null,
totalTax: null,
taxRate: null,
totalAmount: null,
commodityTax: null,
commodityAmount: null,
amountinFiguers: null,
foteDrawer: null,
sellerAddress: null,
commodityNum: null,
sellerRegisterNum: null,
machineCode: null,
remarks: null,
sellerBank: null,
checkCode: null,
invoiceDate: [],
purchaserRegisterNum: null,
invoiceTypeOrg: null,
password: null,
agent: null,
purchaserBank: null,
checker: null,
city: null,
purchaserName: null,
commodityType: null,
province: null,
invoiceType: null,
sheetNum: null,
purchaserAddress: null,
commodityUnit: null,
payee: null,
commodityName: null,
sellerName: null,
invoiceCheck: null,
invoiceSeal: null,
invoiceQrcode: null,
invoiceQrnum: null,
qrCheckCode: null,
invoiceState: null,
printNum: null,
inoutMark: null,
invalidMark: null,
duplicateMark: null,
checkTrue: null,
encrypt: null,
createBy: null,
createTime: [],
recordId: null,
companyId: null,
company: null,
deptId: null,
deptName: null,
userId: null,
remark: null,
fileUrl:null,
},
//
form: {},
//
rules: {
voucherId: [{ required: true, message: "凭证id一个凭证对应多个电子发票不能为空", trigger: "blur" }],
invoiceCode: [{ required: true, message: "发票代码不能为空", trigger: "blur" }],
invoiceNum: [{ required: true, message: "发票号码不能为空", trigger: "blur" }],
}
};
},
created() {
this.getList();
},
methods: {
/**
* 文件预览
* @param fileUrl
*/
openLink(fileUrl) {
const url = `http://139.224.253.31:48012/onlinePreview?url=${encodeURIComponent(this.base64Encode(fileUrl))}`;
window.open(url);
},
/** 查询列表 */
getList() {
this.loading = true;
//
getInvoicesPage(this.queryParams).then(response => {
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
});
},
/** 取消按钮 */
cancel() {
this.open = false;
this.reset();
},
/** 表单重置 */
reset() {
this.form = {
id: undefined,
voucherId: undefined,
invoiceCode: undefined,
invoiceNum: undefined,
amountinWords: undefined,
price: undefined,
totalTax: undefined,
taxRate: undefined,
totalAmount: undefined,
commodityTax: undefined,
commodityAmount: undefined,
amountinFiguers: undefined,
foteDrawer: undefined,
sellerAddress: undefined,
commodityNum: undefined,
sellerRegisterNum: undefined,
machineCode: undefined,
remarks: undefined,
sellerBank: undefined,
checkCode: undefined,
invoiceDate: undefined,
purchaserRegisterNum: undefined,
invoiceTypeOrg: undefined,
password: undefined,
agent: undefined,
purchaserBank: undefined,
checker: undefined,
city: undefined,
purchaserName: undefined,
commodityType: undefined,
province: undefined,
invoiceType: undefined,
sheetNum: undefined,
purchaserAddress: undefined,
commodityUnit: undefined,
payee: undefined,
commodityName: undefined,
sellerName: undefined,
invoiceCheck: undefined,
invoiceSeal: undefined,
invoiceQrcode: undefined,
invoiceQrnum: undefined,
qrCheckCode: undefined,
invoiceState: undefined,
printNum: undefined,
inoutMark: undefined,
invalidMark: undefined,
duplicateMark: undefined,
checkTrue: undefined,
encrypt: undefined,
createBy: undefined,
recordId: undefined,
companyId: undefined,
company: undefined,
deptId: undefined,
deptName: undefined,
userId: undefined,
remark: undefined,
fileUrl:undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加发票";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id;
getInvoices(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改发票";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (!valid) {
return;
}
//
if (this.form.id != null) {
updateInvoices(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
return;
}
//
createInvoices(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
});
},
/** 删除按钮操作 */
handleDelete(row) {
const id = row.id;
this.$modal.confirm('是否确认删除发票编号为"' + id + '"的数据项?').then(function() {
return deleteInvoices(id);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
//
let params = {...this.queryParams};
params.pageNo = undefined;
params.pageSize = undefined;
this.$modal.confirm('是否确认导出所有发票数据项?').then(() => {
this.exportLoading = true;
return exportInvoicesExcel(params);
}).then(response => {
this.$download.excel(response, '发票.xls');
this.exportLoading = false;
}).catch(() => {});
}
}
};
</script>
Loading…
Cancel
Save