Browse Source

完善企业开票信息管理

master
yunuo970428 2 years ago
parent
commit
c7b70a053f
  1. 45
      anrui-buscenter/anrui-buscenter-ui/src/api/kaipiaoxinxi/openTicket.js
  2. 132
      anrui-buscenter/anrui-buscenter-ui/src/api/zhengchangkaipiao/openTicket.js
  3. 26
      anrui-buscenter/anrui-buscenter-ui/src/router/index.js
  4. 189
      anrui-buscenter/anrui-buscenter-ui/src/views/kaipiaoguanli/qiyekaipiaoxinxi/kaipiaoxinxiAdd.vue
  5. 299
      anrui-buscenter/anrui-buscenter-ui/src/views/kaipiaoguanli/qiyekaipiaoxinxi/kaipiaoxinxiguanli.vue
  6. 254
      anrui-buscenter/anrui-buscenter-ui/src/views/kaipiaoguanli/zhengchangkaipiaoguanli/zhangchangkaipiaoguanli.vue
  7. 598
      anrui-buscenter/anrui-buscenter-ui/src/views/kaipiaoguanli/zhengchangkaipiaoguanli/zhengchangkaipiaoAdd.vue
  8. 393
      anrui-buscenter/anrui-buscenter-ui/src/views/kaipiaoguanli/zhengchangkaipiaoguanli/zhengchangkaipiaoInfo.vue
  9. 583
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/kaipiaoguanliFlow/zhengchangkaipiaoguanli/zhengchangkaipiaoEdit.vue
  10. 594
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/kaipiaoguanliFlow/zhengchangkaipiaoguanli/zhengchangkaipiaoInfo.vue

45
anrui-buscenter/anrui-buscenter-ui/src/api/kaipiaoxinxi/openTicket.js

@ -0,0 +1,45 @@
import request from '@/utils/request'
// 企业开票信息申请管理分页列表
export function listPage(data) {
return request({
url: '/fin/v1/fincompanyinvoicing/qyListPage',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 企业开票信息申请管理保存(新增、编辑)
export function save(data) {
return request({
url: '/fin/v1/fincompanyinvoicing/qySaveOrUpdate',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 企业开票信息管理管理分页列表删除
export function delBySids(data) {
return request({
url: '/fin/v1/fincompanyinvoicing/delBySids',
method: 'DELETE',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 企业开票信息申请管理根据Sid获取一条记录
export function fetchDetailsBySid(data) {
return request({
url: '/fin/v1/fincompanyinvoicing/fetchDetailsBySid/' + data,
method: 'get'
})
}

132
anrui-buscenter/anrui-buscenter-ui/src/api/zhengchangkaipiao/openTicket.js

@ -1,132 +0,0 @@
import request from '@/utils/request'
// 盖章申请管理分页列表
export function listPage(data) {
return request({
url: '/fin/v1/finbillapplication/listPage',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 盖章申请管理保存(新增、编辑)
export function save(data) {
return request({
url: '/fin/v1/finbillapplication/save',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 盖章申请管理分页列表删除
export function delBySids(data) {
return request({
url: '/fin/v1/finbillapplication/delBySids',
method: 'DELETE',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 盖章申请管理根据Sid获取一条记录
export function fetchDetailsBySid(data) {
return request({
url: '/fin/v1/finbillapplication/fetchDetailsBySid/' + data,
method: 'get'
})
}
// 数据字典
export function dataDictionary(data) {
return request({
url: '/portal/v1/dictcommons/typeValues',
method: 'get',
params: data
})
}
// 挂靠公司模糊查询下拉框
export function namesDown(data) {
return request({
url: '/base/v1/baseaffiliatcompany/namesDown',
method: 'get',
params: data
})
}
// 盖章申请管理提交
export function submitFinBillApplication(data) {
return request({
url: '/fin/v1/finbillapplication/submitFinBillApplication',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 查看图片
export function fetchFileBySid(data) {
return request({
url: '/fin/v1/finbillfile/fetchFileBySid',
method: 'post',
params: data
})
}
// 待办任务同意办理
export function businessAgree(data) {
return request({
url: '/fin/v1/finbillapplication/complete',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 待办任务驳回任务
export function rejectTask(data) {
return request({
url: '/fin/v1/finbillapplication/reject/' + data.businessSid,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 待办任务终止任务
export function breakTask(data) {
return request({
url: '/fin/v1/finbillapplication/breakProcess/' + data.businessSid,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 待办任务撤回任务
export function revokeTask(data) {
return request({
url: '/fin/v1/finbillapplication/revokeProcess/' + data.userSid + '/' + data.businessSid,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}

26
anrui-buscenter/anrui-buscenter-ui/src/router/index.js

@ -332,16 +332,16 @@ export const constantRoutes = [
component: Layout,
redirect: '/kaipiaoguanli',
meta: {
title: '开票管理'
title: '企业开票信息管理'
},
children: [
{
path: '/kaipiaoguanli/zhengchangkaipiaoguanli',
path: '/kaipiaoguanli/qiyekaipiaoxinxi',
component: () =>
import('@/views/kaipiaoguanli/zhengchangkaipiaoguanli/zhangchangkaipiaoguanli.vue'),
name: 'zhengchangkaipiaoguanli',
import('@/views/kaipiaoguanli/qiyekaipiaoxinxi/kaipiaoxinxiguanli.vue'),
name: 'kaipiaoxinxiguanli',
meta: {
title: '正常开票管理'
title: '企业开票信息管理', noCache: true
}
}
]
@ -508,22 +508,6 @@ export const constantRoutes = [
import('@/views/workflow/gaizhangguanliFlow/gaizhangshenqingguanli/gaizhangshenqingEdit.vue'),
name: 'gaizhangshenqingEdit'
},
// 开票管理
// 正常开票申请详情
{
path: '/kaipiaoguanliFlow/zhengchangkaipiaoguanli/zhengchangkaipiaoInfo.vue',
component: () =>
import('@/views/workflow/kaipiaoguanliFlow/zhengchangkaipiaoguanli/zhengchangkaipiaoInfo.vue'),
name: 'zhengchangkaipiaoguanliInfo'
},
// 正常开票申请编辑
{
path: '/kaipiaoguanliFlow/zhengchangkaipiaoguanli/zhengchangkaipiaoEdit.vue',
component: () =>
import('@/views/workflow/kaipiaoguanliFlow/zhengchangkaipiaoguanli/zhengchangkaipiaoEdit.vue'),
name: 'zhengchangkaipiaoEdit'
},
// 销售管理-销售订单流程
// 销售管理办理详情
{

189
anrui-buscenter/anrui-buscenter-ui/src/views/kaipiaoguanli/qiyekaipiaoxinxi/kaipiaoxinxiAdd.vue

@ -0,0 +1,189 @@
<template>
<div class="app-container">
<div>
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="save()">保存
</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span>开票名称</span>
</el-col>
<el-col :span="20">
<el-form-item><el-input v-model="formobj.name" clearable placeholder="" style="width: 40%"></el-input></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>纳税人识别号</span>
</el-col>
<el-col :span="20">
<el-form-item><el-input v-model="formobj.taxpayerNo" clearable placeholder="" style="width: 40%"></el-input></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>地址</span>
</el-col>
<el-col :span="8">
<el-form-item><el-input v-model="formobj.address" clearable placeholder="" class="addinputw"></el-input></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>电话</span>
</el-col>
<el-col :span="8">
<el-form-item><el-input v-model="formobj.phone" clearable placeholder="" class="addinputw"></el-input></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>开户行</span>
</el-col>
<el-col :span="8">
<el-form-item>
<el-select v-model="formobj.bankName" placeholder="请选择" clearable filterable>
<el-option v-for="item in bank_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>银行账号</span>
</el-col>
<el-col :span="8">
<el-form-item><el-input v-model="formobj.bankAccount" clearable placeholder="" class="addinputw"></el-input></el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
<!--End 添加修改部分-->
</div>
</template>
<script>
import { fetchDetailsBySid, save } from '@/api/kaipiaoxinxi/openTicket'
import { typeValues, getOrgSidByPath,fetchBySid } from '@/api/dictcommons/dictcommons'
export default {
name: 'kaipiaoxinxiAdd',
data() {
return {
viewTitle: '',
index: 0,
tableKey: 0,
bank_list: [],
//
formobj: {
sid: '', // sid
address: '',
bankAccount: '',
bankName: '',
name: '',
phone: '',
taxpayerNo: '',
useOrgName: '',
useOrgSid: '',
orgSidPath: '',
createBySid: ''
},
rules: {},
submitdisabled: false
}
},
methods: {
init() {
typeValues({ type: 'bank' }).then((res) => {
if (res.success) {
this.bank_list = res.data
}
})
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.formobj.useOrgSid = resp.data
fetchBySid(resp.data).then((res) => {
if (res.success) {
this.formobj.useOrgName = res.data.name
}
})
}
})
},
showAdd() {
this.init()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.formobj.orgSidPath = window.sessionStorage.getItem('defaultOrgPath')
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.viewTitle = '【新增】企业开票信息'
},
showEdit(sid) {
this.init()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '【编辑】企业开票信息'
fetchDetailsBySid(sid).then((resp) => {
if (resp.success) {
this.formobj = resp.data
}
}).catch((e) => {
this.formobj = {}
})
},
save() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
save(this.formobj).then((resp) => {
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.handleReturn('true')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
} else {
return false
}
})
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
//
this.formobj = {
sid: '', // sid
address: '',
bankAccount: '',
bankName: '',
name: '',
phone: '',
taxpayerNo: '',
useOrgName: '',
useOrgSid: '',
createBySid: ''
}
this.submitdisabled = false
this.$refs['form_obj'].resetFields()
this.$emit('doback')
}
}
}
</script>
<style scoped>
</style>

299
anrui-buscenter/anrui-buscenter-ui/src/views/kaipiaoguanli/qiyekaipiaoxinxi/kaipiaoxinxiguanli.vue

@ -0,0 +1,299 @@
<template>
<div class="app-container">
<!-- Start 列表页面 -->
<div v-show="viewState == 1">
<button-bar view-title="企业开票信息管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="110px" class="tab-header">
<el-form-item label="开票名称">
<el-input v-model="listQuery.params.name" placeholder="" clearable />
</el-form-item>
<el-form-item label="纳税人识别号">
<el-input v-model="listQuery.params.taxpayerNo" placeholder="" clearable />
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="handleReset" size="small">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">企业开票信息列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column fixed width="50px" type="selection" align="center"/>
<el-table-column fixed width="80px" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="分公司名称" align="center" width="140">
<template slot-scope="scope">
<span>{{ scope.row.useOrgName }}</span>
</template>
</el-table-column>
<el-table-column label="开票名称" align="center" width="140">
<template slot-scope="scope">
<span>{{ scope.row.name }}</span>
</template>
</el-table-column>
<el-table-column label="纳税人识别号" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.taxpayerNo }}</span>
</template>
</el-table-column>
<el-table-column label="地址" align="left" header-align="center">
<template slot-scope="scope">
<span>{{ scope.row.address }}</span>
</template>
</el-table-column>
<el-table-column label="电话" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.phone }}</span>
</template>
</el-table-column>
<el-table-column label="开户行" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.bankName }}</span>
</template>
</el-table-column>
<el-table-column label="银行账号" align="center" width="180">
<template slot-scope="scope">
<span>{{ scope.row.bankAccount }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
<kaipiaoxinxiAdd v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="resetState" @reloadlist="getList"/>
</div>
</template>
<script>
import { listPage, delBySids } from '@/api/kaipiaoxinxi/openTicket'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import kaipiaoxinxiAdd from './kaipiaoxinxiAdd.vue'
export default {
name: 'kaipiaoxinxiguanli',
components: {
Pagination,
pageye,
ButtonBar,
kaipiaoxinxiAdd
},
data() {
return {
btndisabled: false,
btnList: [
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'primary',
size: 'small',
icon: 'edit',
btnKey: 'toEdit',
btnLabel: '编辑'
},
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1,
// -----------
tableKey: 0,
list: [],
sids: [],
FormLoading: false,
listLoading: false,
listQuery: {
params: {
orgSidPath: '',
menuUrl: '',
userSid: '',
name: '',
taxpayerNo: ''
},
current: 1,
size: 5,
total: 0
},
rules: {}
}
},
created() {
//
this.getList()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'toEdit':
this.toEdit()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
handleSelectionChange(row) {
const aa = []
row.forEach((element) => {
aa.push(element.sid)
})
this.sids = aa
console.log('sids', this.sids)
},
//
getList() {
this.listLoading = true
this.listQuery.params.orgSidPath = window.sessionStorage.getItem('defaultOrgPath')
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
this.listQuery.params.menuUrl = this.$route.path
listPage(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
handleReset() {
this.listQuery = {
params: {
orgSidPath: '',
menuUrl: '',
userSid: '',
name: '',
taxpayerNo: ''
},
current: 1,
size: 5,
total: 0
}
this.getList()
},
toAdd() {
this.viewState = 2
this.$refs['divAdd'].showAdd()
},
toEdit() {
if (this.sids.length === 1) {
this.viewState = 3
this.$refs['divAdd'].showEdit(this.sids[0])
} else {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行编辑操作' })
return
}
},
doDel() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
delBySids(this.sids).then(resp => {
if (resp.success) {
this.$message({ type: 'success', message: resp.msg, showClose: true })
}
this.getList()
loading.close()
}).catch(e => {
loading.close()
})
}).catch(() => {
})
},
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
/*表格列设置fixed后固定列出现下边框的设置*/
/deep/ .el-table__fixed {
height: 100% !important;
}
/*表格列设置fixed后固定列出现下边框的设置*/
/deep/ .el-table__fixed-right {
height: 100% !important;
}
</style>

254
anrui-buscenter/anrui-buscenter-ui/src/views/kaipiaoguanli/zhengchangkaipiaoguanli/zhangchangkaipiaoguanli.vue

@ -1,254 +0,0 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>公司开票申请管理</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="webcon">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-row>
<el-form-item label="合同编号:" class="searchlist">
<el-input v-model="listQuery.params.contractNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="客户名称:" class="searchlist">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="开票类型:" class="searchlist">
<el-select v-model="listQuery.params.billTypeKey" placeholder="请选择" filterable clearable>
<el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="开票名称:" class="searchlist">
<el-select v-model="listQuery.params.billName" placeholder="请选择" filterable clearable>
<el-option v-for="item in billName_list" :key="item.sid" :label="item.orgName" :value="item.sid"/>
</el-select>
</el-form-item>
<el-form-item label="申请人:" class="searchlist">
<el-input v-model="listQuery.params.createByName" placeholder="" clearable/>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="开票状态:" class="searchlist">
<el-input v-model="listQuery.params.billState" placeholder="" clearable/>
</el-form-item>
<el-form-item label="申请日期:" class="searchlist">
<el-date-picker value-format="yyyy-MM-dd" v-model="listQuery.params.applyStartDate" clearable style="width: 200px" type="date" placeholder="开始日期"/>
<div class="line"></div>
<el-date-picker value-format="yyyy-MM-dd" v-model="listQuery.params.applyEndDate" clearable style="width: 200px" type="date" placeholder="结束日期"/>
</el-form-item>
</el-row>
<div class="searchbtns">
<el-button type="primary" @click="handleFilter">查询</el-button>
<el-button type="primary" @click="handReset">重置</el-button>
</div>
</el-form>
</div>
</div>
<div>
<div class="listtop">
<div class="tit">公司开票申请列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%">
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" :disabled="scope.row.nodeState !== '待提交'" @click="handUpdate(scope.row)">办理</el-button>
<el-button type="primary" size="small" @click="handLook(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column label="状态" align="center">
<template slot-scope="scope">
<span>{{ scope.row.nodeState }}</span>
</template>
</el-table-column>
<el-table-column label="合同编号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}</span>
</template>
</el-table-column>
<el-table-column label="客户名称" align="center">
<template slot-scope="scope">
<span>{{ scope.row.customerName }}</span>
</template>
</el-table-column>
<el-table-column label="数量" align="center">
<template slot-scope="scope">
<span>{{ scope.row.num }}</span>
</template>
</el-table-column>
<el-table-column label="开票总金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.totalBillMoney }}</span>
</template>
</el-table-column>
<el-table-column label="开票状态" align="center">
<template slot-scope="scope">
<span>{{ scope.row.billState }}</span>
</template>
</el-table-column>
<el-table-column label="申请人" align="center">
<template slot-scope="scope">
<span>{{ scope.row.createByName }}</span>
</template>
</el-table-column>
<el-table-column label="申请日期" align="center">
<template slot-scope="scope">
<span>{{ scope.row.applyDate }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
</div>
<zhengchangkaipiaoAdd v-show="viewState == 2" ref="divAdd" @doback="resetState" @reloadlist="getList"/>
<zhengchangkaipiaoInfo v-show="viewState == 3" ref="divInfo" @doback="resetState"/>
</div>
</template>
<script>
import { listPage, dataDictionary, namesDown } from '@/api/zhengchangkaipiao/openTicket.js'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import zhengchangkaipiaoAdd from './zhengchangkaipiaoAdd'
import zhengchangkaipiaoInfo from './zhengchangkaipiaoInfo.vue'
export default {
name: 'zhengchangkaipiaoguanli',
components: {
Pagination,
pageye,
zhengchangkaipiaoAdd,
zhengchangkaipiaoInfo
},
data() {
return {
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1,
tableKey: 0,
list: [],
billType_list: [],
billName_list: [],
listLoading: false,
listQuery: {
current: 1,
size: 10,
params: {
contractNo: '',
customerName: '',
billTypeKey: '',
billName: '',
createByName: '',
applyEndDate: '',
applyStartDate: '',
billState: '',
useOrgSid: '',
staffSid: window.sessionStorage.getItem('staffSid')
},
total: 0
}
}
},
created() {
this.getList()
this.DataDictionary()
},
methods: {
//
DataDictionary() {
dataDictionary({ type: 'invoiceType' }).then((res) => {
if (res.success) {
this.billType_list = res.data
}
})
namesDown().then((res) => {
if (res.success) {
this.billName_list = res.data
}
})
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
listPage(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.listQuery.total = response.data.total
this.list = response.data.records
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
handReset() {
this.listQuery = {
current: 1,
size: 10,
params: {
contractNo: '',
customerName: '',
billTypeKey: '',
billName: '',
createByName: '',
applyEndDate: '',
applyStartDate: '',
billState: '',
useOrgSid: '',
staffSid: window.sessionStorage.getItem('staffSid')
},
total: 0
}
this.getList()
},
handUpdate(row) {
this.viewState = 2
this.$refs['divAdd'].showEdit(row)
},
handLook(row) {
this.viewState = 3
this.$refs['divInfo'].showInfo(row)
},
resetState() {
this.viewState = 1
}
}
}
</script>
<style scoped>
.line {
display: inline-block;
margin: 0px 15px;
}
</style>

598
anrui-buscenter/anrui-buscenter-ui/src/views/kaipiaoguanli/zhengchangkaipiaoguanli/zhengchangkaipiaoAdd.vue

@ -1,598 +0,0 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveEdit()">保存
</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submitVehicleApply()">提交
</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listadd">
<div class="wlInfo"><span>公司申请入账单</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top" class="formadd">
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="合同编号:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.contractNo" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请日期:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.applyDate" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="客户名称:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.customerName" readonly/>
</el-form-item>
</el-col>
</el-row>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">开票信息</div>
<div style="display: flex;justify-content: flex-start;align-items: center">
<span style="width: 150px">单台开票金额: </span>
<el-input v-show="formobj.oneBillState !=='0'" v-model="formobj.oneBillMoney" readonly @keyup.native="UpNumber" @keydown.native="UpNumber" style="padding: 5px;" placeholder="" clearable></el-input>
<el-input v-show="formobj.oneBillState =='0'" v-model="formobj.oneBillMoney" @keyup.native="UpNumber" @keydown.native="UpNumber" style="padding: 5px;" placeholder="" clearable></el-input>
</div>
</div>
<el-table :key="tableKey" :data="formobj.finBillVehicles" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车架号" align="center" header-align="center">
<template slot-scope="scope">
<span>{{ scope.row.VIN }}</span>
</template>
</el-table-column>
<el-table-column label="开票类型" align="center" header-align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.billTypeKey" placeholder="请选择" filterable clearable>
<el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="开票名称" align="center" header-align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.billName" placeholder="请选择" @change="changeBillName($event, scope.row)" filterable clearable>
<el-option v-for="item in billName_list" :key="item.sid" :label="item.orgName" :value="item.sid"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
</el-table>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="开票金额合计"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
{{ NumberMul() }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="是否延迟开票"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-radio-group v-model="formobj.isDelayBill">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.remarks" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="开票状态"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
{{ formobj.billState }}
</el-form-item>
</el-col>
</el-row>
<div class="headline">
<div style="margin-left: 5px;font-weight: bold">所附资料附件</div>
</div>
<el-table :key="fileKey" :data="finfile_list" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<div class="balanceStyle">
<upload :accept="accept" ref="divUpload" :reminder="false" :showfile="false" @handleSuccess="filesAdd($event, scope.row)" @handleRemove="filesRemove" />
<el-button type="danger" size="small" @click="handDelete(scope.row)">删除</el-button>
</div>
</template>
</el-table-column>
<el-table-column label="附件名称" align="center">
<template slot-scope="scope">
<span class="bluezi" @click="handlook(scope.row)">{{ scope.row.fileName }}</span>
</template>
</el-table-column>
<el-table-column label="上传人" align="center">
<template slot-scope="scope">
<span>{{ scope.row.uploadName }}</span>
</template>
</el-table-column>
<el-table-column label="上传时间" align="center">
<template slot-scope="scope">
<span>{{ scope.row.uploadTime }}</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
<el-dialog :visible.sync="dialogVisible" width="70%">
<el-carousel :interval="4000" type="card">
<el-carousel-item v-for="(item, index) in file_list" :key="index">
<img style="width: 100%; height: 100%" :src="item.filePath" @click="handImg(item.filePath)"/>
</el-carousel-item>
</el-carousel>
</el-dialog>
<el-dialog :visible.sync="dialogVisibleFile">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</div>
</template>
<script>
import { save, dataDictionary, fetchDetailsBySid, submitFinBillApplication, namesDown, fetchFileBySid } from '@/api/zhengchangkaipiao/openTicket.js'
import upload from '@/components/uploadFile/multifileUpload.vue'
export default {
name: 'zhengchangkaipiaoAdd',
components: {
upload
},
data() {
return {
viewTitle: '',
dialogVisible: false,
dialogVisibleFile: false,
dialogImageUrl: '',
index: 0,
tableKey: 0,
fileKey: 1,
file_list: [],
billType_list: [],
billName_list: [],
accept: '.jpg,.jpeg,.png,.JPG,.JPEG,.PNG',
//
formobj: {
sid: '',
userSid: window.sessionStorage.getItem('userSid'),
staffSid: window.sessionStorage.getItem('staffSid'),
createByName: window.sessionStorage.getItem('name'),
contractNo: '',
contractSid: '',
customerName: '',
customerSid: '',
oneBillMoney: '',
oneBillState: '',
totalBillMoney: '',
billAppPublicSid: '',
billState: '',
procDefId: '',
nodeSid: '',
procInstSid: '',
isDelayBill: '',
applyDate: '',
remarks: '',
finBillVehicles: [],
khkpsqsApplicationAppendxs: [], //
kpxxqrsApplicationAppendxs: [], //
cldjhtApplicationAppendxs: [] //
},
finfile_list: [
{
fileName: '《客户开票申请书》',
uploadName: '',
uploadTime: ''
},
{
fileName: '《开票信息确认书》',
uploadName: '',
uploadTime: ''
},
{
fileName: '《车辆登记合同》',
uploadName: '',
uploadTime: ''
}
],
currentDate: '',
rules: {},
submitdisabled: false
}
},
methods: {
//
DataDictionary() {
dataDictionary({ type: 'invoiceType' }).then((res) => {
if (res.success) {
this.billType_list = res.data
}
})
namesDown().then((res) => {
if (res.success) {
this.billName_list = res.data
}
})
},
// ()
NumberMul() {
var arg1 = parseFloat(this.formobj.finBillVehicles.length)
var arg2 = 0
if (this.formobj.oneBillMoney !== '') {
arg2 = parseFloat(this.formobj.oneBillMoney)
}
var m = 0
var s1 = arg1.toString()
var s2 = arg2.toString()
try {
m += s1.split('.')[1].length
} catch (e) {
console.log(e)
}
try {
m += s2.split('.')[1].length
} catch (e) {
console.log(e)
}
this.formobj.totalBillMoney = Number(s1.replace(',', '')) * Number(s2.replace(',', '')) / Math.pow(10, m)
return Number(s1.replace(',', '')) * Number(s2.replace(',', '')) / Math.pow(10, m)
},
//
newDate() {
let date = new Date()
let year = date.getFullYear() //
let month = date.getMonth() + 1 //
let day = date.getDate() //
if (month < 10) {
month = '0' + month
}
if (day < 10) {
day = '0' + day
}
this.currentDate = year + '-' + month + '-' + day
},
UpNumber(e) {
e.target.value = e.target.value.replace(/[^0-9.]/g, '')
},
showEdit(row) {
this.viewTitle = '【编辑】公司开票申请'
this.DataDictionary()
this.newDate()
fetchFileBySid({ billAppSid: row.sid, fileType: '《客户开票申请书》' }).then((resp) => {
if (resp.success) {
if (resp.data.length > 0) {
this.formobj.khkpsqsApplicationAppendxs = resp.data
}
}
})
fetchFileBySid({ billAppSid: row.sid, fileType: '《开票信息确认书》' }).then((resp) => {
if (resp.success) {
if (resp.data.length > 0) {
this.formobj.kpxxqrsApplicationAppendxs = resp.data
}
}
})
fetchFileBySid({ billAppSid: row.sid, fileType: '《车辆登记合同》' }).then((resp) => {
if (resp.success) {
if (resp.data.length > 0) {
this.formobj.cldjhtApplicationAppendxs = resp.data
}
}
})
fetchDetailsBySid(row.sid).then((resp) => {
if (resp.success) {
console.log(resp.data)
this.formobj.sid = row.sid
this.formobj.contractNo = resp.data.contractNo
this.formobj.contractSid = resp.data.contractSid
this.formobj.customerName = resp.data.customerName
this.formobj.customerSid = resp.data.customerSid
this.formobj.oneBillMoney = resp.data.oneBillMoney
this.formobj.totalBillMoney = resp.data.totalBillMoney
this.formobj.billAppPublicSid = resp.data.billAppPublicSid
this.formobj.billState = resp.data.billState
this.formobj.isDelayBill = resp.data.isDelayBill
this.formobj.remarks = resp.data.remarks
this.formobj.oneBillState = resp.data.oneBillState
if (resp.data.applyDate === '') {
this.formobj.applyDate = this.currentDate
} else {
this.formobj.applyDate = resp.data.applyDate
}
this.formobj.finBillVehicles = resp.data.finBillVehicles
if (resp.data.finBillFileVos.length > 0) {
for (var i = 0; i < resp.data.finBillFileVos.length; i++) {
if (resp.data.finBillFileVos[i].fileType === '《客户开票申请书》') {
this.finfile_list[0].uploadTime = resp.data.finBillFileVos[i].createTime
this.finfile_list[0].uploadName = resp.data.finBillFileVos[i].createByName
} else if (resp.data.finBillFileVos[i].fileType === '《开票信息确认书》') {
this.finfile_list[1].uploadTime = resp.data.finBillFileVos[i].createTime
this.finfile_list[1].uploadName = resp.data.finBillFileVos[i].createByName
} else if (resp.data.finBillFileVos[i].fileType === '《车辆登记合同》') {
this.finfile_list[2].uploadTime = resp.data.finBillFileVos[i].createTime
this.finfile_list[2].uploadName = resp.data.finBillFileVos[i].createByName
}
}
}
}
}).catch((e) => {
this.formobj = row
})
},
changeBillName(value, row) {
var aa = null
this.billName_list.forEach((e) => {
if (e.sid === value) {
aa = {
sid: e.sid,
value: e.orgName
}
}
})
for (var i = 0; i < this.formobj.finBillVehicles.length; i++) {
if (this.formobj.finBillVehicles[i].VIN === row.VIN) {
this.formobj.finBillVehicles[i].billName = aa.value
this.formobj.finBillVehicles[i].billNameSid = aa.sid
}
}
},
filesAdd(item, row) {
var arrayList = []
arrayList = item.data
if (row.fileName === '《客户开票申请书》') {
this.formobj.khkpsqsApplicationAppendxs.push({
createBySid: window.sessionStorage.getItem('staffSid'),
name: window.sessionStorage.getItem('name'),
fileName: arrayList.sourceFileName.substr(0, arrayList.sourceFileName.lastIndexOf('.')),
fileType: arrayList.sourceFileName.substr(arrayList.sourceFileName.lastIndexOf('.')),
linkSid: '',
attachType: '',
fileSize: arrayList.size,
filePath: arrayList.fullUrl,
appendixName: row.fileName
})
} else if (row.fileName === '《开票信息确认书》') {
this.formobj.kpxxqrsApplicationAppendxs.push({
createBySid: window.sessionStorage.getItem('staffSid'),
name: window.sessionStorage.getItem('name'),
fileName: arrayList.sourceFileName.substr(0, arrayList.sourceFileName.lastIndexOf('.')),
fileType: arrayList.sourceFileName.substr(arrayList.sourceFileName.lastIndexOf('.')),
linkSid: '',
attachType: '',
fileSize: arrayList.size,
filePath: arrayList.fullUrl,
appendixName: row.fileName
})
} else {
this.formobj.cldjhtApplicationAppendxs.push({
createBySid: window.sessionStorage.getItem('staffSid'),
name: window.sessionStorage.getItem('name'),
fileName: arrayList.sourceFileName.substr(0, arrayList.sourceFileName.lastIndexOf('.')),
fileType: arrayList.sourceFileName.substr(arrayList.sourceFileName.lastIndexOf('.')),
linkSid: '',
attachType: '',
fileSize: arrayList.size,
filePath: arrayList.fullUrl,
appendixName: row.fileName
})
}
},
filesRemove(item) {
// console.log(item)
},
handDelete(row) {
const tip = '请确认是否删除' + row.fileName + ' 中上传的文件?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
if (row.fileName === '《客户开票申请书》') {
this.formobj.khkpsqsApplicationAppendxs = []
} else if (row.fileName === '《开票信息确认书》') {
this.formobj.kpxxqrsApplicationAppendxs = []
} else {
this.formobj.cldjhtApplicationAppendxs = []
}
})
},
handlook(row) {
this.dialogVisible = true
this.file_list = []
console.log(this.formobj.kpxxqrsApplicationAppendxs, this.formobj.khkpsqsApplicationAppendxs, this.formobj.cldjhtApplicationAppendxs)
if (row.fileName === '《客户开票申请书》') {
if (this.formobj.khkpsqsApplicationAppendxs.length > 0) {
for (var i = 0; i < this.formobj.khkpsqsApplicationAppendxs.length; i++) {
if (this.formobj.khkpsqsApplicationAppendxs[i].appendixName === row.fileName) {
this.file_list.push({
filePath: this.formobj.khkpsqsApplicationAppendxs[i].filePath
})
}
}
} else {
this.dialogVisible = false
}
} else if (row.fileName === '《开票信息确认书》') {
if (this.formobj.kpxxqrsApplicationAppendxs.length > 0) {
for (var a = 0; a < this.formobj.kpxxqrsApplicationAppendxs.length; a++) {
if (this.formobj.kpxxqrsApplicationAppendxs[a].appendixName === row.fileName) {
this.file_list.push({
filePath: this.formobj.kpxxqrsApplicationAppendxs[a].filePath
})
}
}
} else {
this.dialogVisible = false
}
} else {
if (this.formobj.cldjhtApplicationAppendxs.length > 0) {
for (var b = 0; b < this.formobj.cldjhtApplicationAppendxs.length; b++) {
if (this.formobj.cldjhtApplicationAppendxs[b].appendixName === row.fileName) {
this.file_list.push({
filePath: this.formobj.cldjhtApplicationAppendxs[b].filePath
})
}
}
} else {
this.dialogVisible = false
}
}
},
handImg(val) {
this.dialogVisibleFile = true
this.dialogImageUrl = val
},
saveEdit() {
this.submitdisabled = true
console.log(this.formobj)
save(this.formobj).then((resp) => {
this.submitdisabled = false
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
}).catch(() => {
this.submitdisabled = false
})
},
submitVehicleApply() {
this.submitdisabled = true
submitFinBillApplication(this.formobj).then((res) => {
if (res.success) {
this.submitdisabled = false
this.$message({
showClose: true,
type: 'success',
message: '提交成功'
})
this.handleReturn('true')
} else {
this.$message({
showClose: true,
type: 'error',
message: '提交失败'
})
}
})
},
// ===
handleReturn(isreload) {
this.formobj = {
sid: '',
userSid: window.sessionStorage.getItem('userSid'),
staffSid: window.sessionStorage.getItem('staffSid'),
createByName: window.sessionStorage.getItem('name'),
contractNo: '',
contractSid: '',
customerName: '',
customerSid: '',
oneBillMoney: '',
oneBillState: '',
totalBillMoney: '',
billAppPublicSid: '',
billState: '',
procDefId: '',
nodeSid: '',
procInstSid: '',
isDelayBill: '',
applyDate: '',
remarks: '',
finBillVehicles: [],
khkpsqsApplicationAppendxs: [], //
kpxxqrsApplicationAppendxs: [], //
cldjhtApplicationAppendxs: [] //
}
this.file_list = []
if (isreload === 'true') this.$emit('reloadlist')
this.$emit('doback')
}
}
}
</script>
<style scoped>
.wlInfo {
text-align: center;
font-size: 28px;
line-height: 90px;
}
.linetwo {
border-left: 0px;
border-right: 0px;
}
.linetwo .el-col{
border: 0;
}
.linetwo .el-form-item {
margin-bottom: 0px !important;
}
.linetwo >>> .el-input__inner {
border: 0;
}
.tableStyle {
background-color: #FFFFFF;
display: flex;
justify-content: space-between;
align-items: center;
border: 1px solid #dfe4ed;
height: 45px;
}
.el-form-item-right {
text-align: right;
}
.balanceStyle {
display: flex;
justify-content: center;
align-items: center;
}
.headline{
height: 40px;
padding: 10px;
font-weight: bold;
background-color: #0294d7;
text-align: left;
color: #ffffff;
}
.listadd{
margin-left: 14px;
margin-right: 14px;
}
</style>

393
anrui-buscenter/anrui-buscenter-ui/src/views/kaipiaoguanli/zhengchangkaipiaoguanli/zhengchangkaipiaoInfo.vue

@ -1,393 +0,0 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listadd">
<div class="wlInfo"><span>公司申请入账单</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top" class="formadd">
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="合同编号:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.contractNo" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请日期:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.applyDate" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="客户名称:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.customerName" readonly/>
</el-form-item>
</el-col>
</el-row>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">开票信息</div>
<div>
<span style="margin-right: 10px">单台开票金额{{ formobj.oneBillMoney }} </span>
</div>
</div>
<el-table :key="tableKey" :data="formobj.finBillVehicles" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车架号" align="center" header-align="center">
<template slot-scope="scope">
<span>{{ scope.row.VIN }}</span>
</template>
</el-table-column>
<el-table-column label="开票类型" align="center" header-align="center">
<template slot-scope="scope">
<span>{{ scope.row.billTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="开票名称" align="center" header-align="center">
<template slot-scope="scope">
<span>{{ scope.row.billName }}</span>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center">
<template slot-scope="scope">
<span>{{ scope.row.remarks }}</span>
</template>
</el-table-column>
</el-table>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="开票金额合计"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<span>{{ formobj.totalBillMoney }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="是否延迟开票"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<span>{{ formobj.isDelayBill == '1' ? '是' : '否' }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<span>{{ formobj.remarks }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="开票状态"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
{{ formobj.billState }}
</el-form-item>
</el-col>
</el-row>
<div class="headline">
<div style="margin-left: 5px;font-weight: bold">所附资料附件</div>
</div>
<el-table :key="fileKey" :data="finfile_list" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="附件名称" align="center">
<template slot-scope="scope">
<span class="bluezi" @click="handlook(scope.row)">{{ scope.row.fileName }}</span>
</template>
</el-table-column>
<el-table-column label="上传人" align="center">
<template slot-scope="scope">
<span>{{ scope.row.uploadName }}</span>
</template>
</el-table-column>
<el-table-column label="上传时间" align="center">
<template slot-scope="scope">
<span>{{ scope.row.uploadTime }}</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
<el-dialog :visible.sync="dialogVisible" width="70%">
<el-carousel :interval="4000" type="card">
<el-carousel-item v-for="(item, index) in file_list" :key="index">
<img style="width: 100%; height: 100%" :src="item.filePath" @click="handImg(item.filePath)"/>
</el-carousel-item>
</el-carousel>
</el-dialog>
<el-dialog :visible.sync="dialogVisibleFile">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</div>
</template>
<script>
import { fetchDetailsBySid, fetchFileBySid } from '@/api/zhengchangkaipiao/openTicket.js'
export default {
name: 'zhengchangkaipiaoInfo',
data() {
return {
viewTitle: '',
dialogVisible: false,
dialogVisibleFile: false,
dialogImageUrl: '',
index: 0,
tableKey: 0,
fileKey: 1,
file_list: [],
//
formobj: {
sid: '',
userSid: window.sessionStorage.getItem('userSid'),
staffSid: window.sessionStorage.getItem('staffSid'),
createByName: window.sessionStorage.getItem('name'),
contractNo: '',
contractSid: '',
customerName: '',
customerSid: '',
oneBillMoney: '',
totalBillMoney: '',
billAppPublicSid: '',
billState: '',
procDefId: '',
nodeSid: '',
procInstSid: '',
isDelayBill: '',
applyDate: '',
remarks: '',
finBillVehicles: [],
khkpsqsApplicationAppendxs: [], //
kpxxqrsApplicationAppendxs: [], //
cldjhtApplicationAppendxs: [] //
},
finfile_list: [
{
fileName: '《客户开票申请书》',
uploadName: '',
uploadTime: ''
},
{
fileName: '《开票信息确认书》',
uploadName: '',
uploadTime: ''
},
{
fileName: '《车辆登记合同》',
uploadName: '',
uploadTime: ''
}
],
currentDate: '',
rules: {},
submitdisabled: false
}
},
methods: {
showInfo(row) {
this.viewTitle = '公司开票申请'
fetchFileBySid({ billAppSid: row.sid, fileType: '《客户开票申请书》' }).then((resp) => {
if (resp.success) {
if (resp.data.length > 0) {
this.formobj.khkpsqsApplicationAppendxs = resp.data
}
}
})
fetchFileBySid({ billAppSid: row.sid, fileType: '《开票信息确认书》' }).then((resp) => {
if (resp.success) {
if (resp.data.length > 0) {
this.formobj.kpxxqrsApplicationAppendxs = resp.data
}
}
})
fetchFileBySid({ billAppSid: row.sid, fileType: '《车辆登记合同》' }).then((resp) => {
if (resp.success) {
if (resp.data.length > 0) {
this.formobj.cldjhtApplicationAppendxs = resp.data
}
}
})
fetchDetailsBySid(row.sid).then((resp) => {
if (resp.success) {
console.log(resp.data)
this.formobj.sid = row.sid
this.formobj.contractNo = resp.data.contractNo
this.formobj.contractSid = resp.data.contractSid
this.formobj.customerName = resp.data.customerName
this.formobj.customerSid = resp.data.customerSid
this.formobj.oneBillMoney = resp.data.oneBillMoney
this.formobj.totalBillMoney = resp.data.totalBillMoney
this.formobj.billAppPublicSid = resp.data.billAppPublicSid
this.formobj.billState = resp.data.billState
this.formobj.isDelayBill = resp.data.isDelayBill
this.formobj.remarks = resp.data.remarks
if (resp.data.applyDate === '') {
this.formobj.applyDate = this.currentDate
} else {
this.formobj.applyDate = resp.data.applyDate
}
this.formobj.finBillVehicles = resp.data.finBillVehicles
if (resp.data.finBillFileVos.length > 0) {
for (var i = 0; i < resp.data.finBillFileVos.length; i++) {
if (resp.data.finBillFileVos[i].fileType === '《客户开票申请书》') {
this.finfile_list[0].uploadTime = resp.data.finBillFileVos[i].createTime
this.finfile_list[0].uploadName = resp.data.finBillFileVos[i].createByName
} else if (resp.data.finBillFileVos[i].fileType === '《开票信息确认书》') {
this.finfile_list[1].uploadTime = resp.data.finBillFileVos[i].createTime
this.finfile_list[1].uploadName = resp.data.finBillFileVos[i].createByName
} else if (resp.data.finBillFileVos[i].fileType === '《车辆登记合同》') {
this.finfile_list[2].uploadTime = resp.data.finBillFileVos[i].createTime
this.finfile_list[2].uploadName = resp.data.finBillFileVos[i].createByName
}
}
}
}
}).catch((e) => {
this.formobj = row
})
},
handlook(row) {
this.dialogVisible = true
this.file_list = []
if (row.fileName === '《客户开票申请书》') {
if (this.formobj.khkpsqsApplicationAppendxs.length > 0) {
for (var i = 0; i < this.formobj.khkpsqsApplicationAppendxs.length; i++) {
if (this.formobj.khkpsqsApplicationAppendxs[i].appendixName === row.fileName) {
this.file_list.push({
filePath: this.formobj.khkpsqsApplicationAppendxs[i].filePath
})
}
}
} else {
this.dialogVisible = false
}
} else if (row.fileName === '《开票信息确认书》') {
if (this.formobj.kpxxqrsApplicationAppendxs.length > 0) {
for (var a = 0; a < this.formobj.kpxxqrsApplicationAppendxs.length; a++) {
if (this.formobj.kpxxqrsApplicationAppendxs[a].appendixName === row.fileName) {
this.file_list.push({
filePath: this.formobj.kpxxqrsApplicationAppendxs[a].filePath
})
}
}
} else {
this.dialogVisible = false
}
} else {
if (this.formobj.cldjhtApplicationAppendxs.length > 0) {
for (var b = 0; b < this.formobj.cldjhtApplicationAppendxs.length; b++) {
if (this.formobj.cldjhtApplicationAppendxs[b].appendixName === row.fileName) {
this.file_list.push({
filePath: this.formobj.cldjhtApplicationAppendxs[b].filePath
})
}
}
} else {
this.dialogVisible = false
}
}
},
handImg(val) {
this.dialogVisibleFile = true
this.dialogImageUrl = val
},
// ===
handleReturn() {
this.formobj = {
sid: '',
userSid: window.sessionStorage.getItem('userSid'),
staffSid: window.sessionStorage.getItem('staffSid'),
createByName: window.sessionStorage.getItem('name'),
contractNo: '',
contractSid: '',
customerName: '',
customerSid: '',
oneBillMoney: '',
totalBillMoney: '',
billAppPublicSid: '',
billState: '',
procDefId: '',
nodeSid: '',
procInstSid: '',
isDelayBill: '',
applyDate: '',
remarks: '',
finBillVehicles: [],
khkpsqsApplicationAppendxs: [], //
kpxxqrsApplicationAppendxs: [], //
cldjhtApplicationAppendxs: [] //
}
this.file_list = []
this.$emit('doback')
}
}
}
</script>
<style scoped>
.wlInfo {
text-align: center;
font-size: 28px;
line-height: 90px;
}
.linetwo {
border-left: 0px;
border-right: 0px;
}
.linetwo .el-col{
border: 0;
}
.linetwo .el-form-item {
margin-bottom: 0px !important;
}
.linetwo >>> .el-input__inner {
border: 0;
}
.tableStyle {
background-color: #FFFFFF;
display: flex;
justify-content: space-between;
align-items: center;
border: 1px solid #dfe4ed;
height: 45px;
}
.el-form-item-right {
text-align: right;
}
.headline{
height: 40px;
padding: 10px;
font-weight: bold;
background-color: #0294d7;
text-align: left;
color: #ffffff;
}
.listadd{
margin-left: 14px;
margin-right: 14px;
}
</style>

583
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/kaipiaoguanliFlow/zhengchangkaipiaoguanli/zhengchangkaipiaoEdit.vue

@ -1,583 +0,0 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveEdit()">保存
</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submitVehicleApply()">提交
</el-button>
<el-button type="info" size="small">关闭</el-button>
</div>
</div>
<div class="listadd">
<div class="wlInfo"><span>公司申请入账单</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top" class="formadd">
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="合同编号:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.contractNo" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请日期:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.applyDate" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="客户名称:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.customerName" readonly/>
</el-form-item>
</el-col>
</el-row>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">开票信息</div>
<div style="display: flex;justify-content: flex-start;align-items: center">
<span style="width: 150px">单台开票金额: </span>
<el-input v-show="formobj.oneBillState !=='0'" v-model="formobj.oneBillMoney" readonly @keyup.native="UpNumber" @keydown.native="UpNumber" style="padding: 5px;" placeholder="" clearable></el-input>
<el-input v-show="formobj.oneBillState =='0'" v-model="formobj.oneBillMoney" @keyup.native="UpNumber" @keydown.native="UpNumber" style="padding: 5px;" placeholder="" clearable></el-input>
</div>
</div>
<el-table :key="tableKey" :data="formobj.finBillVehicles" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车架号" align="center" header-align="center">
<template slot-scope="scope">
<span>{{ scope.row.VIN }}</span>
</template>
</el-table-column>
<el-table-column label="开票类型" align="center" header-align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.billTypeKey" placeholder="请选择" filterable clearable>
<el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="开票名称" align="center" header-align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.billName" placeholder="请选择" @change="changeBillName($event, scope.row)" filterable clearable>
<el-option v-for="item in billName_list" :key="item.sid" :label="item.orgName" :value="item.sid"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
</el-table>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="开票金额合计"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
{{ NumberMul() }}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="是否延迟开票"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-radio-group v-model="formobj.isDelayBill">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.remarks" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="开票状态"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
{{ formobj.billState }}
</el-form-item>
</el-col>
</el-row>
<div class="headline">
<div style="margin-left: 5px;font-weight: bold">所附资料附件</div>
</div>
<el-table :key="fileKey" :data="finfile_list" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<div class="balanceStyle">
<upload :accept="accept" ref="divUpload" :reminder="false" :showfile="false" @handleSuccess="filesAdd($event, scope.row)" @handleRemove="filesRemove" />
<el-button type="danger" size="small" @click="handDelete(scope.row)">删除</el-button>
</div>
</template>
</el-table-column>
<el-table-column label="附件名称" align="center">
<template slot-scope="scope">
<span class="bluezi" @click="handlook(scope.row)">{{ scope.row.fileName }}</span>
</template>
</el-table-column>
<el-table-column label="上传人" align="center">
<template slot-scope="scope">
<span>{{ scope.row.uploadName }}</span>
</template>
</el-table-column>
<el-table-column label="上传时间" align="center">
<template slot-scope="scope">
<span>{{ scope.row.uploadTime }}</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
<el-dialog :visible.sync="dialogVisible" width="70%">
<el-carousel :interval="4000" type="card">
<el-carousel-item v-for="(item, index) in file_list" :key="index">
<img style="width: 100%; height: 100%" :src="item.filePath" @click="handImg(item.filePath)"/>
</el-carousel-item>
</el-carousel>
</el-dialog>
<el-dialog :visible.sync="dialogVisibleFile">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</div>
</template>
<script>
import { save, dataDictionary, fetchDetailsBySid, submitFinBillApplication, namesDown, fetchFileBySid } from '@/api/zhengchangkaipiao/openTicket.js'
import upload from '@/components/uploadFile/multifileUpload.vue'
export default {
name: 'zhengchangkaipiaoEdit',
components: {
upload
},
data() {
return {
viewTitle: '',
dialogVisible: false,
dialogVisibleFile: false,
dialogImageUrl: '',
index: 0,
tableKey: 0,
fileKey: 1,
file_list: [],
billType_list: [],
billName_list: [],
accept: '.jpg,.jpeg,.png,.JPG,.JPEG,.PNG',
//
formobj: {
sid: '',
userSid: window.sessionStorage.getItem('userSid'),
staffSid: window.sessionStorage.getItem('staffSid'),
createByName: window.sessionStorage.getItem('name'),
contractNo: '',
contractSid: '',
customerName: '',
customerSid: '',
oneBillMoney: '',
oneBillState: '',
totalBillMoney: '',
billAppPublicSid: '',
billState: '',
procDefId: '',
nodeSid: '',
procInstSid: '',
isDelayBill: '',
applyDate: '',
remarks: '',
businessSid: '', // sid
instanceId: '', // id
taskId: '', // id
finBillVehicles: [],
khkpsqsApplicationAppendxs: [], //
kpxxqrsApplicationAppendxs: [], //
cldjhtApplicationAppendxs: [] //
},
finfile_list: [
{
fileName: '《客户开票申请书》',
uploadName: '',
uploadTime: ''
},
{
fileName: '《开票信息确认书》',
uploadName: '',
uploadTime: ''
},
{
fileName: '《车辆登记合同》',
uploadName: '',
uploadTime: ''
}
],
currentDate: '',
rules: {},
submitdisabled: false
}
},
created() {
this.DataDictionary()
console.log('url:' + window.location.href)
var a = window.location.href.indexOf('?') + 1 // ?
var b = window.location.href.indexOf('#data') // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf('=') + 1)
this.showInfo(sid)
// ===
var one = window.location.href.lastIndexOf('#') + 1
var two = window.location.href.lastIndexOf('}') + 1
const data = decodeURI(window.location.href.slice(one, two)) // urlunescape()web,使
var tar = data.substr(data.indexOf('=') + 1)
const obj = JSON.parse(tar)
console.log('iframe页面获取的obj:', obj)
//
this.formobj.businessSid = sid
this.formobj.instanceId = obj.instanceId
this.formobj.taskId = obj.taskId
},
methods: {
//
DataDictionary() {
dataDictionary({ type: 'invoiceType' }).then((res) => {
if (res.success) {
this.billType_list = res.data
}
})
namesDown().then((res) => {
if (res.success) {
this.billName_list = res.data
}
})
},
//
NumberMul() {
var arg1 = parseFloat(this.formobj.finBillVehicles.length)
var arg2 = parseFloat(this.formobj.oneBillMoney)
var m = 0
var s1 = arg1.toString()
var s2 = arg2.toString()
try {
m += s1.split('.')[1].length
} catch (e) {
console.log(e)
}
try {
m += s2.split('.')[1].length
} catch (e) {
console.log(e)
}
this.formobj.totalBillMoney = Number(s1.replace(',', '')) * Number(s2.replace(',', '')) / Math.pow(10, m)
return Number(s1.replace(',', '')) * Number(s2.replace(',', '')) / Math.pow(10, m)
},
//
newDate() {
let date = new Date()
let year = date.getFullYear() //
let month = date.getMonth() + 1 //
let day = date.getDate() //
if (month < 10) {
month = '0' + month
}
if (day < 10) {
day = '0' + day
}
this.currentDate = year + '-' + month + '-' + day
},
UpNumber(e) {
e.target.value = e.target.value.replace(/[^0-9.]/g, '')
},
showInfo(sid) {
this.viewTitle = '【编辑】公司开票申请'
this.DataDictionary()
this.newDate()
fetchFileBySid({ billAppSid: sid, fileType: '《客户开票申请书》' }).then((resp) => {
if (resp.success) {
if (resp.data.length > 0) {
this.formobj.khkpsqsApplicationAppendxs = resp.data
}
}
})
fetchFileBySid({ billAppSid: sid, fileType: '《开票信息确认书》' }).then((resp) => {
if (resp.success) {
if (resp.data.length > 0) {
this.formobj.kpxxqrsApplicationAppendxs = resp.data
}
}
})
fetchFileBySid({ billAppSid: sid, fileType: '《车辆登记合同》' }).then((resp) => {
if (resp.success) {
if (resp.data.length > 0) {
this.formobj.cldjhtApplicationAppendxs = resp.data
}
}
})
fetchDetailsBySid(sid).then((resp) => {
if (resp.success) {
console.log(resp.data)
this.formobj.sid = sid
this.formobj.contractNo = resp.data.contractNo
this.formobj.contractSid = resp.data.contractSid
this.formobj.customerName = resp.data.customerName
this.formobj.customerSid = resp.data.customerSid
this.formobj.oneBillMoney = resp.data.oneBillMoney
this.formobj.totalBillMoney = resp.data.totalBillMoney
this.formobj.billAppPublicSid = resp.data.billAppPublicSid
this.formobj.billState = resp.data.billState
this.formobj.isDelayBill = resp.data.isDelayBill
this.formobj.remarks = resp.data.remarks
this.formobj.oneBillState = resp.data.oneBillState
if (resp.data.applyDate === '') {
this.formobj.applyDate = this.currentDate
} else {
this.formobj.applyDate = resp.data.applyDate
}
this.formobj.finBillVehicles = resp.data.finBillVehicles
if (resp.data.finBillFileVos.length > 0) {
for (var i = 0; i < resp.data.finBillFileVos.length; i++) {
if (resp.data.finBillFileVos[i].fileType === '《客户开票申请书》') {
this.finfile_list[0].uploadTime = resp.data.finBillFileVos[i].createTime
this.finfile_list[0].uploadName = resp.data.finBillFileVos[i].createByName
} else if (resp.data.finBillFileVos[i].fileType === '《开票信息确认书》') {
this.finfile_list[1].uploadTime = resp.data.finBillFileVos[i].createTime
this.finfile_list[1].uploadName = resp.data.finBillFileVos[i].createByName
} else if (resp.data.finBillFileVos[i].fileType === '《车辆登记合同》') {
this.finfile_list[2].uploadTime = resp.data.finBillFileVos[i].createTime
this.finfile_list[2].uploadName = resp.data.finBillFileVos[i].createByName
}
}
}
}
}).catch((e) => {
this.formobj = row
})
},
changeBillName(value, row) {
var aa = null
this.billName_list.forEach((e) => {
if (e.sid === value) {
aa = {
sid: e.sid,
value: e.orgName
}
}
})
for (var i = 0; i < this.formobj.finBillVehicles.length; i++) {
if (this.formobj.finBillVehicles[i].VIN === row.VIN) {
this.formobj.finBillVehicles[i].billName = aa.value
this.formobj.finBillVehicles[i].billNameSid = aa.sid
}
}
},
filesAdd(item, row) {
var arrayList = []
arrayList = item.data
if (row.fileName === '《客户开票申请书》') {
this.formobj.khkpsqsApplicationAppendxs.push({
createBySid: window.sessionStorage.getItem('staffSid'),
name: window.sessionStorage.getItem('name'),
fileName: arrayList.sourceFileName.substr(0, arrayList.sourceFileName.lastIndexOf('.')),
fileType: arrayList.sourceFileName.substr(arrayList.sourceFileName.lastIndexOf('.')),
linkSid: '',
attachType: '',
fileSize: arrayList.size,
filePath: arrayList.fullUrl,
appendixName: row.fileName
})
} else if (row.fileName === '《开票信息确认书》') {
this.formobj.kpxxqrsApplicationAppendxs.push({
createBySid: window.sessionStorage.getItem('staffSid'),
name: window.sessionStorage.getItem('name'),
fileName: arrayList.sourceFileName.substr(0, arrayList.sourceFileName.lastIndexOf('.')),
fileType: arrayList.sourceFileName.substr(arrayList.sourceFileName.lastIndexOf('.')),
linkSid: '',
attachType: '',
fileSize: arrayList.size,
filePath: arrayList.fullUrl,
appendixName: row.fileName
})
} else {
this.formobj.cldjhtApplicationAppendxs.push({
createBySid: window.sessionStorage.getItem('staffSid'),
name: window.sessionStorage.getItem('name'),
fileName: arrayList.sourceFileName.substr(0, arrayList.sourceFileName.lastIndexOf('.')),
fileType: arrayList.sourceFileName.substr(arrayList.sourceFileName.lastIndexOf('.')),
linkSid: '',
attachType: '',
fileSize: arrayList.size,
filePath: arrayList.fullUrl,
appendixName: row.fileName
})
}
},
filesRemove(item) {
// console.log(item)
},
handDelete(row) {
const tip = '请确认是否删除' + row.fileName + ' 中上传的文件?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
if (row.fileName === '《客户开票申请书》') {
this.formobj.khkpsqsApplicationAppendxs = []
} else if (row.fileName === '《开票信息确认书》') {
this.formobj.kpxxqrsApplicationAppendxs = []
} else {
this.formobj.cldjhtApplicationAppendxs = []
}
})
},
handlook(row) {
this.dialogVisible = true
this.file_list = []
console.log(this.formobj.kpxxqrsApplicationAppendxs, this.formobj.khkpsqsApplicationAppendxs, this.formobj.cldjhtApplicationAppendxs)
if (row.fileName === '《客户开票申请书》') {
if (this.formobj.khkpsqsApplicationAppendxs.length > 0) {
for (var i = 0; i < this.formobj.khkpsqsApplicationAppendxs.length; i++) {
if (this.formobj.khkpsqsApplicationAppendxs[i].appendixName === row.fileName) {
this.file_list.push({
filePath: this.formobj.khkpsqsApplicationAppendxs[i].filePath
})
}
}
} else {
this.dialogVisible = false
}
} else if (row.fileName === '《开票信息确认书》') {
if (this.formobj.kpxxqrsApplicationAppendxs.length > 0) {
for (var a = 0; a < this.formobj.kpxxqrsApplicationAppendxs.length; a++) {
if (this.formobj.kpxxqrsApplicationAppendxs[a].appendixName === row.fileName) {
this.file_list.push({
filePath: this.formobj.kpxxqrsApplicationAppendxs[a].filePath
})
}
}
} else {
this.dialogVisible = false
}
} else {
if (this.formobj.cldjhtApplicationAppendxs.length > 0) {
for (var b = 0; b < this.formobj.cldjhtApplicationAppendxs.length; b++) {
if (this.formobj.cldjhtApplicationAppendxs[b].appendixName === row.fileName) {
this.file_list.push({
filePath: this.formobj.cldjhtApplicationAppendxs[b].filePath
})
}
}
} else {
this.dialogVisible = false
}
}
},
handImg(val) {
this.dialogVisibleFile = true
this.dialogImageUrl = val
},
saveEdit() {
this.submitdisabled = true
console.log(this.formobj)
save(this.formobj).then((resp) => {
this.submitdisabled = false
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
}).catch(() => {
this.submitdisabled = false
})
},
submitVehicleApply() {
this.submitdisabled = true
submitFinBillApplication(this.formobj).then((res) => {
if (res.success) {
this.submitdisabled = false
this.$message({
showClose: true,
type: 'success',
message: '提交成功'
})
this.handleReturn('true')
} else {
this.$message({
showClose: true,
type: 'error',
message: '提交失败'
})
}
})
}
}
}
</script>
<style scoped>
.wlInfo {
text-align: center;
font-size: 28px;
line-height: 90px;
}
.linetwo {
border-left: 0px;
border-right: 0px;
}
.linetwo .el-col{
border: 0;
}
.linetwo .el-form-item {
margin-bottom: 0px !important;
}
.linetwo >>> .el-input__inner {
border: 0;
}
.tableStyle {
background-color: #FFFFFF;
display: flex;
justify-content: space-between;
align-items: center;
border: 1px solid #dfe4ed;
height: 45px;
}
.el-form-item-right {
text-align: right;
}
.balanceStyle {
display: flex;
justify-content: center;
align-items: center;
}
.headline{
height: 40px;
padding: 10px;
font-weight: bold;
background-color: #0294d7;
text-align: left;
color: #ffffff;
}
</style>

594
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/kaipiaoguanliFlow/zhengchangkaipiaoguanli/zhengchangkaipiaoInfo.vue

@ -1,594 +0,0 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button v-show="transactState=='00'" type="primary" @click="openAgree"> </el-button>
<el-button v-show="transactState=='00'" type="danger" @click="openReject"> </el-button>
<!-- <el-button v-show="transactState=='00'" type="danger" @click="openStop"> </el-button>-->
<el-button v-show="transactState=='01'" type="danger" @click="openRevoke"> </el-button>
<el-button type="info" size="small"> </el-button>
</div>
</div>
<div class="listadd">
<div class="wlInfo"><span>公司申请入账单</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top" class="formadd">
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="合同编号:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.contractNo" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请日期:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.applyDate" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="客户名称:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.customerName" readonly/>
</el-form-item>
</el-col>
</el-row>
<div v-show="transactState=='00'">
<el-form :model="dialogList" :inline="true">
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="审批意见:">
</el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="dialogList.comment" type="textarea" maxlength="20" placeholder="请输入审批意见" style="width: 400px" clearable/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">开票信息</div>
<div>
<span style="margin-right: 10px">单台开票金额{{ formobj.oneBillMoney }} </span>
</div>
</div>
<el-table :key="tableKey" :data="formobj.finBillVehicles" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车架号" align="center" header-align="center">
<template slot-scope="scope">
<span>{{ scope.row.VIN }}</span>
</template>
</el-table-column>
<el-table-column label="开票类型" align="center" header-align="center">
<template slot-scope="scope">
<span>{{ scope.row.billTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="开票名称" align="center" header-align="center">
<template slot-scope="scope">
<span>{{ scope.row.billName }}</span>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center">
<template slot-scope="scope">
<span>{{ scope.row.remarks }}</span>
</template>
</el-table-column>
</el-table>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="开票金额合计"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<span>{{ formobj.totalBillMoney }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="是否延迟开票"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<span>{{ formobj.isDelayBill == '1' ? '是' : '否' }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<span>{{ formobj.remarks }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="开票状态"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
{{ formobj.billState }}
</el-form-item>
</el-col>
</el-row>
<div class="headline">
<div style="margin-left: 5px;font-weight: bold">所附资料附件</div>
</div>
<el-table :key="fileKey" :data="finfile_list" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="附件名称" align="center">
<template slot-scope="scope">
<span class="bluezi" @click="handlook(scope.row)">{{ scope.row.fileName }}</span>
</template>
</el-table-column>
<el-table-column label="上传人" align="center">
<template slot-scope="scope">
<span>{{ scope.row.uploadName }}</span>
</template>
</el-table-column>
<el-table-column label="上传时间" align="center">
<template slot-scope="scope">
<span>{{ scope.row.uploadTime }}</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
<el-dialog :visible.sync="dialogVisible" width="70%">
<el-carousel :interval="4000" type="card">
<el-carousel-item v-for="(item, index) in file_list" :key="index">
<img style="width: 100%; height: 100%" :src="item.filePath" @click="handImg(item.filePath)"/>
</el-carousel-item>
</el-carousel>
</el-dialog>
<el-dialog :visible.sync="dialogVisibleFile">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</div>
</template>
<script>
import { fetchDetailsBySid, fetchFileBySid, businessAgree, rejectTask, breakTask, revokeTask } from '@/api/zhengchangkaipiao/openTicket.js'
export default {
name: 'zhengchangkaipiaoguanliInfo',
data() {
return {
viewTitle: '',
dialogVisible: false,
dialogVisibleFile: false,
dialogImageUrl: '',
index: 0,
tableKey: 0,
fileKey: 1,
file_list: [],
//
formobj: {
sid: '',
userSid: window.sessionStorage.getItem('userSid'),
staffSid: window.sessionStorage.getItem('staffSid'),
createByName: window.sessionStorage.getItem('name'),
contractNo: '',
contractSid: '',
customerName: '',
customerSid: '',
oneBillMoney: '',
totalBillMoney: '',
billAppPublicSid: '',
billState: '',
procDefId: '',
nodeSid: '',
procInstSid: '',
isDelayBill: '',
applyDate: '',
remarks: '',
finBillVehicles: [],
khkpsqsApplicationAppendxs: [], //
kpxxqrsApplicationAppendxs: [], //
cldjhtApplicationAppendxs: [] //
},
finfile_list: [
{
fileName: '《客户开票申请书》',
uploadName: '',
uploadTime: ''
},
{
fileName: '《开票信息确认书》',
uploadName: '',
uploadTime: ''
},
{
fileName: '《车辆登记合同》',
uploadName: '',
uploadTime: ''
}
],
currentDate: '',
dialogList: {
comment: ''
},
transactState: '', //
//
agreeList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
//
regectList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
//
stopList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
//
revokeList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
rules: {},
submitdisabled: false
}
},
created() {
console.log('url:' + window.location.href)
var a = window.location.href.indexOf('?') + 1 // ?
var b = window.location.href.indexOf('#data') // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf('=') + 1)
this.showInfo(sid)
// ===
var one = window.location.href.lastIndexOf('#') + 1
var two = window.location.href.lastIndexOf('}') + 1
const data = decodeURI(window.location.href.slice(one, two)) // urlunescape()web,使
var tar = data.substr(data.indexOf('=') + 1)
const obj = JSON.parse(tar)
console.log('iframe页面获取的obj:', obj)
//
this.agreeList.businessSid = sid
this.agreeList.instanceId = obj.instanceId
this.agreeList.taskId = obj.taskId
//
this.regectList.businessSid = sid
this.regectList.instanceId = obj.instanceId
this.regectList.taskId = obj.taskId
//
this.stopList.businessSid = sid
this.stopList.instanceId = obj.instanceId
this.stopList.taskId = obj.taskId
//
this.revokeList.businessSid = sid
this.revokeList.instanceId = obj.instanceId
this.revokeList.taskId = obj.taskId
//
this.transactState = obj.transactState
},
methods: {
showInfo(sid) {
this.viewTitle = '公司开票申请'
fetchFileBySid({ billAppSid: sid, fileType: '《客户开票申请书》' }).then((resp) => {
if (resp.success) {
if (resp.data.length > 0) {
this.formobj.khkpsqsApplicationAppendxs = resp.data
}
}
})
fetchFileBySid({ billAppSid: sid, fileType: '《开票信息确认书》' }).then((resp) => {
if (resp.success) {
if (resp.data.length > 0) {
this.formobj.kpxxqrsApplicationAppendxs = resp.data
}
}
})
fetchFileBySid({ billAppSid: sid, fileType: '《车辆登记合同》' }).then((resp) => {
if (resp.success) {
if (resp.data.length > 0) {
this.formobj.cldjhtApplicationAppendxs = resp.data
}
}
})
fetchDetailsBySid(sid).then((resp) => {
if (resp.success) {
console.log(resp.data)
this.formobj.sid = sid
this.formobj.contractNo = resp.data.contractNo
this.formobj.contractSid = resp.data.contractSid
this.formobj.customerName = resp.data.customerName
this.formobj.customerSid = resp.data.customerSid
this.formobj.oneBillMoney = resp.data.oneBillMoney
this.formobj.totalBillMoney = resp.data.totalBillMoney
this.formobj.billAppPublicSid = resp.data.billAppPublicSid
this.formobj.billState = resp.data.billState
this.formobj.isDelayBill = resp.data.isDelayBill
this.formobj.remarks = resp.data.remarks
if (resp.data.applyDate === '') {
this.formobj.applyDate = this.currentDate
} else {
this.formobj.applyDate = resp.data.applyDate
}
this.formobj.finBillVehicles = resp.data.finBillVehicles
if (resp.data.finBillFileVos.length > 0) {
for (var i = 0; i < resp.data.finBillFileVos.length; i++) {
if (resp.data.finBillFileVos[i].fileType === '《客户开票申请书》') {
this.finfile_list[0].uploadTime = resp.data.finBillFileVos[i].createTime
this.finfile_list[0].uploadName = resp.data.finBillFileVos[i].createByName
} else if (resp.data.finBillFileVos[i].fileType === '《开票信息确认书》') {
this.finfile_list[1].uploadTime = resp.data.finBillFileVos[i].createTime
this.finfile_list[1].uploadName = resp.data.finBillFileVos[i].createByName
} else if (resp.data.finBillFileVos[i].fileType === '《车辆登记合同》') {
this.finfile_list[2].uploadTime = resp.data.finBillFileVos[i].createTime
this.finfile_list[2].uploadName = resp.data.finBillFileVos[i].createByName
}
}
}
}
}).catch((e) => {
this.formobj = {}
})
},
handlook(row) {
this.dialogVisible = true
this.file_list = []
if (row.fileName === '《客户开票申请书》') {
if (this.formobj.khkpsqsApplicationAppendxs.length > 0) {
for (var i = 0; i < this.formobj.khkpsqsApplicationAppendxs.length; i++) {
if (this.formobj.khkpsqsApplicationAppendxs[i].appendixName === row.fileName) {
this.file_list.push({
filePath: this.formobj.khkpsqsApplicationAppendxs[i].filePath
})
}
}
} else {
this.dialogVisible = false
}
} else if (row.fileName === '《开票信息确认书》') {
if (this.formobj.kpxxqrsApplicationAppendxs.length > 0) {
for (var a = 0; a < this.formobj.kpxxqrsApplicationAppendxs.length; a++) {
if (this.formobj.kpxxqrsApplicationAppendxs[a].appendixName === row.fileName) {
this.file_list.push({
filePath: this.formobj.kpxxqrsApplicationAppendxs[a].filePath
})
}
}
} else {
this.dialogVisible = false
}
} else {
if (this.formobj.cldjhtApplicationAppendxs.length > 0) {
for (var b = 0; b < this.formobj.cldjhtApplicationAppendxs.length; b++) {
if (this.formobj.cldjhtApplicationAppendxs[b].appendixName === row.fileName) {
this.file_list.push({
filePath: this.formobj.cldjhtApplicationAppendxs[b].filePath
})
}
}
} else {
this.dialogVisible = false
}
}
},
//
openAgree() {
this.$confirm('是否确认执行同意操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleAgree()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消同意'
})
})
},
//
openReject() {
this.$confirm('是否确认执行驳回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleReject()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消驳回'
})
})
},
//
openStop() {
this.$confirm('是否确认执行终止操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleStop()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消终止'
})
})
},
/** 确认撤回任务 */
openRevoke() {
this.$confirm('是否确认执行撤回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleRevoke()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消撤回'
})
})
},
/** 同意任务 */
handleAgree() {
this.agreeList.comment = this.dialogList.comment
businessAgree(this.agreeList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.refreshIt()
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
/** 终止任务 */
handleStop() {
this.stopList.comment = this.dialogList.comment
breakTask(this.stopList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
/** 驳回任务 */
handleReject() {
this.regectList.comment = this.dialogList.comment
rejectTask(this.regectList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
/** 撤回任务 */
handleRevoke() {
this.revokeList.comment = this.dialogList.comment
revokeTask(this.revokeList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
handImg(val) {
this.dialogVisibleFile = true
this.dialogImageUrl = val
}
}
}
</script>
<style scoped>
.wlInfo {
text-align: center;
font-size: 28px;
line-height: 90px;
}
.linetwo {
border-left: 0px;
border-right: 0px;
}
.linetwo .el-col{
border: 0;
}
.linetwo .el-form-item {
margin-bottom: 0px !important;
margin-right: 0px !important;
}
.linetwo >>> .el-input__inner {
border: 0;
}
.tableStyle {
background-color: #FFFFFF;
display: flex;
justify-content: space-between;
align-items: center;
border: 1px solid #dfe4ed;
height: 45px;
}
.el-form-item-right {
text-align: right;
}
.headline{
height: 40px;
padding: 10px;
font-weight: bold;
background-color: #0294d7;
text-align: left;
color: #ffffff;
}
</style>
Loading…
Cancel
Save