Commit 7be73373 authored by 吴春's avatar 吴春

ppt发票管理

parent 5cbf1ce3
<style>
.page_iisMg ._nav {
margin: 20px 0 0 0;
background-color: #f5f5f5;
}
.page_iisMg ._nav li {
float: left;
font-size: 14px;
color: #666666;
padding: 15px 20px;
cursor: pointer;
position: relative;
background-color: #f1f1f1;
margin-right: 5px;
}
.page_iisMg ._nav li._active {
background-color: #ffffff;
color: #333333;
}
.page_iisMg ._nav li._active::after {
content: "";
width: 20px;
height: 3px;
background-color: #e95252;
display: inline-block;
position: absolute;
bottom: 0;
left: 38%;
}
.page_iisMg .query-box {
padding-bottom: 0;
}
.page_iisMg .iis_info_box {
padding-top: 15px;
}
.page_iisMg .el-date-editor .el-range-separator {
width: 9% !important;
}
.page_iisMg td span.status_Application{
color: #409EFF;
}
.page_iisMg td span.status_Cancle{
color: #909399;
}
.page_iisMg td span.status_Passed{
color: #67C23A;
}
.page_iisMg td span.status_Rejected{
color: #F56C6C;
}
.page_iisMg td span.status_owe{
color: #E6A23C;
}
.page_iisMg td span.status_Recover{
color: #67C23A;
}
.page_iisMg .cursorpointer{
text-decoration: underline;
}
.page_iisMg ._icon_btn i{
width: 30px;
height: 30px;
display: inline-block;
color: white !important;
border-radius: 50%;
text-align: center;
line-height: 30px;
margin-right: 10px;
cursor: pointer;
outline: none;
}
.page_iisMg ._icon_btn i.icon-ico_commodity_defaul{background-color: #F16C3C;}
.page_iisMg ._icon_btn i.icon-ico_commodity_defaul:hover{background-color: #e87c54}
.page_iisMg ._icon_btn i.icon-ico_commodity_defaul:active{background-color: #f76630}
.page_iisMg ._icon_btn i.icon-quxiao1{background-color: #E95252;}
.page_iisMg ._icon_btn i.icon-quxiao1:hover{background-color: #ea6d6d}
.page_iisMg ._icon_btn i.icon-quxiao1:active{background-color:#e42d2d}
.page_iisMg ._icon_btn i.icon-sousuo{background-color: #47BF8C;}
.page_iisMg ._icon_btn i.icon-sousuo:hover{background-color: #66bb97}
.page_iisMg ._icon_btn i.icon-sousuo:active{background-color: #35ab79}
._zhuihui{
display: inline-block;
height: 30px;
width: 30px;
border-radius: 50%;
color: white;
background-color: #e42d2d;
text-align: center;
line-height: 30px;
cursor: pointer;
margin-right: 10px
}
._zhuihui.xiugai{
background-color: #409EFF;
}
.Shopping_bossdialog ._addUpload_box {
display: initial;
margin-top: 20px;
width: 138px !important;
}
.Shopping_bossdialog ._addUpload_box>div {
float: left;
width: 138px;
height: 92px;
border-radius: 2px;
cursor: pointer;
padding: 5px;
margin: 0 10px 10px 0;
position: relative;
}
.Shopping_bossdialog ._addUpload_box .icon-guanbi1 {
font-size: 12px;
color: white;
display: inline-block;
margin-left: 15px;
position: absolute;
right: -6px;
top: -9px;
background-color: #f56c6c;
border-radius: 50%;
height: 20px;
width: 20px;
text-align: center;
line-height: 20px;
}
.Shopping_bossdialog ._addUpload_box .icon-guanbi1:hover {
font-size: 12px;
color: #c94052;
}
.Shopping_bossdialog ._pic_upload .el-upload-dragger {
width: 100px !important;
height: 50px !important;
}
.PQ_detail {
width: 100%;
border-collapse: collapse;
}
.PQ_detail tr th,
.v-table-title-cell {
background: #e6e6e6;
height: 40px;
font-size: 14px;
border-right: 1px solid #e6e6e6;
color: #333;
}
.PQ_detail tr {
background: #fff;
text-align: center;
height: 40px;
}
.PQ_detail tr td {
font-size: 12px;
border: 1px solid #e5e5e5;
}
</style>
<template>
<div class="page_iisMg">
<ul class="_nav clearfix">
<li :class="active==1?'_active':''" @click="active=1,msg.InvoiceApplyState=0,getPageList()">全部发票</li>
<li :class="active==2?'_active':''" @click="active=2,msg.InvoiceApplyState=1,getPageList()">开票中</li>
<li :class="active==3?'_active':''" @click="active=3,msg.InvoiceApplyState=3,getPageList()">退票中</li>
</ul>
<div class="query-box">
<div @keyup.enter="resetPageIndex()">
<el-form class="iis_info_box clearfix" label-width="110px">
<el-row>
<el-col :span="4" :gutter="35">
<el-form-item label="关键字" >
<el-input placeholder="请输入发票抬头/税号/邮箱地址" v-model="msg.InvoiceKey"></el-input>
</el-form-item>
</el-col>
<!--InvoiceApplyState 1-开票中,2-已开票 3- 退票中,4-已退票,5-已作废 -->
<el-col :span="4" :gutter="35" v-if="active !== 3">
<el-form-item :label="$t('fnc.a_djztai')">
<el-select v-model="msg.InvoiceApplyState" filterable>
<el-option :value="0" :label="$t('pub.unlimitedSel')"></el-option>
<el-option :value="1" label="开票中"></el-option>
<el-option :value="2" label="已开票"></el-option>
<el-option :value="3" label="退票中"></el-option>
<el-option :value="4" label="已退票"></el-option>
<el-option :value="5" label="已作废"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" :gutter="35">
<el-form-item label="申请日期">
<el-date-picker
class="h34"
@change="timeAdd"
v-model="productionDate"
type="daterange"
value-format="yyyy-MM-dd"
:range-separator="$t('restaurant.res_To')"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<ul>
<li>
<button
class="hollowFixedBtn"
@click="resetPageIndex()"
>{{$t('pub.searchBtn')}}</button>
</li>
</ul>
</div>
<table class="singeRowTable" style="border:1px solid #E6E6E6;" cellspacing="0" cellpadding="0">
<tr>
<th>发票类型</th>
<th width="180">
开具方式
</th>
<th>发票抬头</th>
<th>税号</th>
<th>邮箱地址</th>
<th>开票状态</th>
<th>金额</th>
<th>申请日期</th>
<!-- <th>发票附件</th> -->
<th>{{$t('system.table_operation')}}</th>
</tr>
<template v-for="(item, index) in dataList" v-loading="loading">
<tr>
<!-- class="cursorpointer" -->
<td>{{item.InvoiceType==1?"企业":(item.InvoiceType==2?"个人":"")}}</td>
<td>
{{item.IssuedType==1?"电子普通发票":(item.IssuedType==2?"增值税专用发票":"")}}
</td>
<td >{{item.InvoiceTitle}}</td>
<td >{{item.InvoiceTaxNo}}</td>
<td >{{item.Email}}</td>
<td >
<span v-if="item.InvoiceState==1">开票中</span>
<span v-else-if="item.InvoiceState==2">已开票</span>
<span v-else-if="item.InvoiceState==3"> 退票中</span>
<span v-else-if="item.InvoiceState==4">已退票</span>
<span v-else-if="item.InvoiceState==5">已作废</span>
<span v-else></span>
</td>
<td>
<el-popover width="630" trigger="click">
<table class="PQ_detail">
<tr>
<td style="text-align: left; padding-left: 10px;border:0px;">
订单信息
</td>
</tr>
<tr>
<th >Vip类型名称</th>
<th>第三方交易号</th>
<th>收款金额</th>
<th>付款时间</th>
</tr>
<tr v-if="item.OrderList&&item.OrderList.length>0" v-for="(itemo, indexo) in item.OrderList" v-loading="loading">
<td >{{itemo.VipName}}/{{itemo.InvalidName}}</td>
<td>
{{ itemo.PayTradeNum }}
</td>
<td>{{ itemo.TradePrice | priceFormat(itemo.TradePrice) }}</td>
<td>
{{itemo.PayTime}}
</td>
</tr>
</table>
<span slot="reference" class="price" style="text-decoration: underline;cursor: pointer;">{{item.Money}}</span>
</el-popover>
</td>
<td>{{item.CreateTime}} </td>
<td class="_icon_btn" style="text-align: left;padding-left: 20px">
<!-- <el-tooltip class="item" effect="dark" :content="$t('fnc.chakan')" placement="top">
<i class="iconfont icon-sousuo" @click="goIisDetail(item.Id)"></i>
</el-tooltip> -->
<el-tooltip class="item" v-if="item.InvoiceState==1" effect="dark" content="发票审核" placement="top">
<i v-if="item.InvoiceState === 1" class="iconfont icon-ico_commodity_defaul" @click="setStatus(item.Id, 1)"></i>
</el-tooltip>
<el-tooltip class="item" v-else-if="item.InvoiceState==3" effect="dark" content="发票审核" placement="top">
<i v-if="item.InvoiceState === 1" class="iconfont icon-ico_commodity_defaul" @click="setStatus(item.Id, 2)"></i>
</el-tooltip>
<el-tooltip class="item" v-else-if="item.InvoiceState==2&&item.InvoiceFile.length==0" effect="dark" content="上传发票" placement="top">
<i v-if="item.InvoiceState==2&&item.InvoiceFile.length==0" class="iconfont icon-ico_commodity_defaul" @click="setPic(item.Id,3)"></i>
</el-tooltip>
<el-tooltip class="item" v-if="item.InvoiceFile&&item.InvoiceFile.length>0" effect="dark" content="发票信息" placement="top">
<i v-if="item.InvoiceFile&&item.InvoiceFile.length>0" class="iconfont icon-sousuo" style="background-color:#47BF8C;" @click="showPic(item,1)"></i>
</el-tooltip>
<el-tooltip class="item" v-if="item.InvoiceFile&&item.InvoiceFile.length>0&&item.IsSendEmail==0" effect="dark" content="发送邮件" placement="top">
<i v-if="item.InvoiceFile&&item.InvoiceFile.length>0" class="iconfont el-icon-position" style="background-color:#47BF8C;" @click="showPic(item,2)"></i>
</el-tooltip>
</td>
</tr>
</template>
</table>
<div class="noDataNotice" v-if="dataList.length<1"><i class="iconfont icon-kong"></i> <p>没有找到你需要的数据</p></div>
<div v-if="dataList.length>0">
<el-pagination
background
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
layout="total,prev, pager, next, jumper"
:page-size='msg.pageSize'
:total='total'>
</el-pagination>
</div>
<el-dialog
custom-class="w300"
title="发票审核"
:visible.sync="isShowStatus"
>
<div style="padding-bottom:20px">
<span> 审核理由 <span style="color:red;">提示:拒绝必须填写理由</span></span>
<el-input style="margin-top:10px;"
autofocus
rows="5"
type="textarea"
placeholder="请填写理由"
clear="w150"
v-model="UpdateApply.ExamineNote"
></el-input>
<el-row :gutter="20" style="margin-top: 20px;">
<el-col :span="24" style="text-align: right;">
<input
type="button"
class="normalBtn"
value="同意"
@click="updateStatus(1)"
/>
<input
type="button"
class="normalBtn"
value="拒绝"
@click="updateStatus(2)"
/>
<input
type="button"
class="hollowFixedBtn"
:value="$t('pub.closeSel')"
@click="isShowStatus = false,UpdateApply.Id='',UpdateApply.UpdateType='',UpdateApply.ExamineState=0,UpdateApply.ExamineNote='',UpdateApply.InvoiceFile=''"
/>
</el-col>
</el-row>
</div>
</el-dialog>
<el-dialog :visible.sync="isShowPicStatus" class="Shopping_bossdialog" custom-class="w500" title="发票信息">
<div class="_addUpload_box clearfix" >
<template v-for="(file,fIndex) in saveMsg">
<div v-if="file.Type==3">
<div class="iconfont " style="width:100%;height:100%;overflow: hidden;">
<el-image
style="width:100%;height:100%;"
:src="file.Url?file.Url:file.Content"
:preview-src-list="[file.Url?file.Url:file.Content]">
</el-image>
</div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
<div v-if="file.Type==1">
<div class="iconfont "
:class="file.Content.substring(file.Content.lastIndexOf('.')+1,file.Content.length).toUpperCase()=='PDF'? 'icon-pdf' : 'icon-excel'"
@click="showUpLoadFile(file)">
</div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
<div v-if="file.Type==2">
<div class="iconfont icon-excel" @click="showUpLoadFile(file)">
</div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
</template>
<div class="_pic_upload" v-if="UpdateApply.Id.length>0&&UpdateApply.InvoiceFile.length==0">
<el-upload drag :http-request="uploadFileBtn" :multiple="true" :show-file-list="false" action="">
<i class="el-icon-plus avatar-uploader-icon"></i>
<div class="el-upload__text">{{$t('active.ld_djscwj')}}</div>
</el-upload>
</div>
</div>
<div slot="footer" class="dialog-footer" v-if="UpdateApply.Id.length>0">
<input
type="button"
class="normalBtn"
value="确认"
@click="updateStatus(3)"
/>
<input
type="button"
class="hollowFixedBtn"
:value="$t('pub.closeSel')"
@click="isShowPicStatus = false,UpdateApply.Id='',UpdateApply.UpdateType='',UpdateApply.ExamineState=0,UpdateApply.ExamineNote='',UpdateApply.InvoiceFile=''"
/>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
active: 1,
RB_Group_Id:'',
msg: {
InvoiceApplyState: 0,
InvoiceKey:'',
sDate: '',
eDate: '',
pageIndex: 1,
pageSize: 10,
},
productionDate: [],
dataList: [],
//上传数组
saveMsg: [],
loading: false,
isShowStatus:false,
isShowPicStatus:false,
picObj: [],
url:"",
currentPage: 0,
total:0,
UpdateApply:{
InvoiceFile:[],
ExamineState:0,////1-同意。2-拒绝
ExamineNote:'',////审核拒绝理由必填
Id:'',
UpdateType:"",//0/1-默认审核发票,2-处理发票取消审核 ,3-上传附件
},
};
},
filters: {
priceFormat(value) {
if (value == null) {
return 0.0;
}
let nStr = value.toFixed(2);
nStr += "";
let x = nStr.split(".");
let x1 = x[0];
let x2 = x.length > 1 ? "." + x[1] : "";
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, "$1" + "," + "$2");
}
return x1 + x2;
},
},
methods: {
setPic: function (id, type) {
this.UpdateApply.Id=id;
this.UpdateApply.UpdateType=type;
this.UpdateApply.InvoiceFile=[];
this.isShowPicStatus=true;
},
showPic: function (item,type) {
if (type==1) {
this.isShowPicStatus=true;
this.saveMsg=[];
this.saveMsg= JSON.parse(JSON.stringify(item.InvoiceFile))
}
else{
this.UpdateApply.Id=item.Id;
this.apipost('ppt_SendPPTUserInvoiceFile', this.UpdateApply, res=>{
if (res.data.resultCode == 1) {
this. UpdateApply.InvoiceFile="";
this. UpdateApply.InvoiceFile="",
this. UpdateApply.ExamineState=0,////1-同意。2-拒绝
this. UpdateApply.ExamineNote='',////审核拒绝理由必填
this. UpdateApply.Id="",
this. UpdateApply.UpdateType="",//0/1-默认审核发票,2-处理发票取消审核 ,3-上传附件
this.isShowStatus=false;
this.isShowPicStatus=false;
this.saveMsg=[];
this.picObj=[];
this.getPageList()
}
}, null)
}
},
showUpLoadFile(i) { // 预览上传文件
if (i.Type == 3) {
this.picObj.push(i.Url);
console.log("我进来了哈哈哈哈", this.picObj);
// this.url = this.picObj[0] ;
} else {
if (i.Content.substring(i.Content.lastIndexOf('.') + 1, i.Content.length).toUpperCase() == 'PDF') {
this.previewPDF(i.Url)
} else {
window.open("https://view.officeapps.live.com/op/view.aspx?src=" + i.Url)
}
}
},
deleteUploadFile(i) { // 删除上传文件
this.saveMsg.splice(i, 1);
this.UpdateApply.InvoiceFile =[];
},
uploadFileBtn(file) { //上传
if (file.file.size > 1024 * 1024 * 10) {
this.Error('文件大小不能超过10M!')
return
}
// 1 文档 2 数据 3 图片
let typeArr = [{
stringArr: 'GIF|JPG|JPEG|PNG|BMP',
type: 3
},
{
stringArr: 'DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF',
type: 1
},
]
let ft = file.file.name.substring(file.file.name.lastIndexOf('.') + 1, file.file.name.length).toUpperCase();
let fileTypeNumber = 2;
let typeOk = false;
typeArr.forEach(x => {
if (x.stringArr.indexOf(ft) != '-1') {
fileTypeNumber = x.type
typeOk = true;
}
})
if (!typeOk) return this.Error('请上传图片、word、excel类型的文件!');
let newArr = [];
newArr.push(file.file)
let path = "/Upload/Temporary/"
this.$message.info(this.$t('tips.shangchuanzhong'))
this.UploadSelfFileT(path, newArr, x => {
this.saveMsg.push({
Content: x.data.FilePath,
Type: fileTypeNumber,
Url: this.domainManager().ViittoFileUrl + x.data.FilePath,
})
this.UpdateApply.InvoiceFile = this.saveMsg ;
this.Success(this.$t('tips.scchenggong'));
});
},
setStatus: function (id, type) {
this.UpdateApply.Id=id;
this.UpdateApply.UpdateType=type;
this.isShowStatus=true;
},
///更新发票状态
updateStatus(ExamineState){
this.UpdateApply.ExamineState=ExamineState;
if (this.UpdateApply.ExamineState==2&&this.UpdateApply.ExamineNote.length==0) {
this.Error("请填写拒绝理由");
return;
}
let stateStr="";//0/1-默认审核发票,2-处理发票取消审核 ,3-上传附件,
if(this.UpdateApply.UpdateType<=1){
if(this.UpdateApply.ExamineState==1){
stateStr="是否同意当前发票申请?"
}
else if(this.UpdateApply.ExamineState==2){
stateStr="是否拒绝当前发票申请?";
}
}
else if(this.UpdateApply.ExamineState==2){
if(this.UpdateApply.ExamineState==1){
stateStr="确认同意取消当前发票?"
}
else if(this.UpdateApply.ExamineState==2){
stateStr="确认拒绝取消当前发票?";
}
}
else{
stateStr="确认操作当前发票信息?";
}
this.$confirm(stateStr, this.$t('tips.tips'), {
confirmButtonText: '确认',
cancelButtonText: this.$t('pub.cancelBtn'),
type: 'warning'
}).then(() => {
this.apipost('ppt_ExaminePPTUserInvoice', this.UpdateApply, res=>{
if (res.data.resultCode == 1) {
this. UpdateApply.InvoiceFile="";
this. UpdateApply.InvoiceFile="",
this. UpdateApply.ExamineState=0,////1-同意。2-拒绝
this. UpdateApply.ExamineNote='',////审核拒绝理由必填
this. UpdateApply.Id="",
this. UpdateApply.UpdateType="",//0/1-默认审核发票,2-处理发票取消审核 ,3-上传附件
this.isShowStatus=false;
this.isShowPicStatus=false;
this.saveMsg=[];
this.picObj=[];
this.getPageList()
}
}, null)
}).catch(() => {
});
},
timeAdd: function () {
// 日期格式
if (!this.productionDate) {
this.msg.sDate = "";
this.msg.eDate = "";
return;
}
this.msg.sDate = this.productionDate[0];
this.msg.eDate = this.productionDate[1];
},
getPageList: function () {
this.loading = true
this.apipost('ppt_GetAllPPTUserInvoicePage', this.msg, res=>{
this.loading = false
if (res.data.resultCode == 1) {
this.total = res.data.data.count;
this.dataList = res.data.data.pageData
}
}, null)
},
goUrlAdd: function (path) {
this.$router.push({
name: path,
query: { blank: "y",}
});
},
goUrlT: function (path, obj, title){
this.$router.push({ name:path,query:{"id":obj,blank:'y',tab:title}})
},
handleCurrentChange: function (val) { //翻页
this.msg.pageIndex = val;
this.getPageList();
},
resetPageIndex: function (){ // 重置页码
this.msg.pageIndex=1;
this.currentPage = 1;
this.getPageList()
}
},
mounted() {
this.getPageList();
}
};
</script>
...@@ -4052,6 +4052,13 @@ export default { ...@@ -4052,6 +4052,13 @@ export default {
meta: { meta: {
title: '发票详情' title: '发票详情'
}, },
}, { //财务 PPT发票管理
path: '/PPTInvoicesManager',
name: 'PPTInvoicesManager',
component: resolve => require(['@/components/FinancialModule/PPTInvoicesManager'], resolve),
meta: {
title: 'PPT发票管理'
},
}, { //财务 财务单据 收款查询管理 }, { //财务 财务单据 收款查询管理
path: '/RecPayQuery', path: '/RecPayQuery',
name: 'RecPayQuery', name: 'RecPayQuery',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment