[update] 普通项目缴费凭证
This commit is contained in:
@@ -21,6 +21,8 @@ const getCouncilDetailById = (param) => getAction('/payCaseCouncil/payCaseCounci
|
||||
const getCommitteeUnderStudyProject = (param) => getAction('/payResearchProject/payResearchProject/listForThree', param)
|
||||
// 工作组在研项目
|
||||
const getWorkingGroupUnderStudyProject = (param) => getAction('/payResearchProject/payResearchProject/list', param)
|
||||
// 缴费凭证审核记录
|
||||
// const getAuditRecords = (param) => getAction('/paymentCheck/payPaymentCheck/amountReceivedSubList', param)
|
||||
|
||||
export {
|
||||
queryCommonProjectById,
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
</a-tooltip>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="8" :md="8" :sm="24">
|
||||
<span>应付金额:{{ }}元</span>
|
||||
<span>应付金额:{{ receivableAmount }}元</span>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="8" :md="8" :sm="24">
|
||||
<span>已付金额:{{ }}元</span>
|
||||
<span>已付金额:{{ paidAmount }}元</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
@@ -29,7 +29,7 @@
|
||||
rowKey="id"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:pagination="ipagination"
|
||||
:pagination="false"
|
||||
:loading="loading"
|
||||
@change="handleTableChange"
|
||||
class="j-table-force-nowrap">
|
||||
@@ -43,26 +43,24 @@
|
||||
<j-ellipsis :value="text" :length="20"></j-ellipsis>
|
||||
</template>
|
||||
|
||||
<!-- 打包、需要发票-->
|
||||
<template v-slot:status-pack="{record, text}">
|
||||
<status-slot :statu-obj="record" :status-no="text"></status-slot>
|
||||
</template>
|
||||
<!-- 到账-->
|
||||
<template v-slot:status="{record, text}">
|
||||
<status-slot :statu-obj="record" :status-no="text" :status-type="true"></status-slot>
|
||||
</template>
|
||||
<!-- 开票-->
|
||||
<template v-slot:status-bill="{record, text}">
|
||||
<status-slot :statu-obj="record" :status-no="text" :status-type="true" status-key="bill"></status-slot>
|
||||
</template>
|
||||
<!-- 邮寄-->
|
||||
<template v-slot:status-mail="{record, text}">
|
||||
<status-slot :statu-obj="record" :status-no="text" :status-type="true" status-key="mail"></status-slot>
|
||||
<!-- 阶段-->
|
||||
<template slot="steg" slot-scope="text, record">
|
||||
<j-ellipsis :value="text" :length="20"></j-ellipsis>
|
||||
</template>
|
||||
|
||||
<!-- 缴费凭证-->
|
||||
<template slot="proof" slot-scope="text, record">
|
||||
<div class="proof-img-box">
|
||||
<img :src="proofSrc(text)" @click="previewProofImg(text)">
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<!-- 操作-->
|
||||
<span slot="action" class="action-span-cell" slot-scope="text,record">
|
||||
<a @click="paymentVoucher(record)">缴费凭证</a>
|
||||
<a @click="viewProof(record)"
|
||||
v-if="record.paymentStatus === 'toBeReviewed' || record.paymentStatus === 'completed'">查看</a>
|
||||
<a @click="editProof(record)" v-if="record.paymentStatus === 'rejected'">编辑</a>
|
||||
<a @click="handleDelete(record.id)" v-if="record.paymentStatus === 'rejected'">删除</a>
|
||||
</span>
|
||||
</a-table>
|
||||
</div>
|
||||
@@ -141,6 +139,12 @@
|
||||
</a-card>
|
||||
|
||||
<payment-voucher-modal ref="stageModal" @ok="modalFormOk"></payment-voucher-modal>
|
||||
|
||||
<!-- 预览缴费凭证-->
|
||||
<preview-img-modal ref="previewImg"></preview-img-modal>
|
||||
|
||||
<!-- 查看缴费凭证信息-->
|
||||
<proof-info-modal ref="proofInfo" :project-name="$route.query.projectName"></proof-info-modal>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
@@ -148,26 +152,30 @@
|
||||
<script>
|
||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||
import PaymentVoucherModal from '@views/MessagePage/modules/PaymentVoucherModal'
|
||||
import { getAction } from '@api/manage'
|
||||
import PreviewImgModal from '@views/MessagePage/modules/PreviewImgModal'
|
||||
import ProofInfoModal from '@views/MessagePage/modules/ProofInfoModal'
|
||||
|
||||
const columns = [
|
||||
{
|
||||
title: '阶段',
|
||||
dataIndex: 'chargeProject',
|
||||
align: 'center',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
scopedSlots: { customRender: 'steg' }
|
||||
}, {
|
||||
title: '缴费金额',
|
||||
dataIndex: 'principalName',
|
||||
dataIndex: 'amountReceived',
|
||||
align: 'center',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '缴费凭证',
|
||||
dataIndex: 'principalPhone',
|
||||
dataIndex: 'proof',
|
||||
align: 'center',
|
||||
scopedSlots: { customRender: 'img' }
|
||||
width: 200,
|
||||
scopedSlots: { customRender: 'proof' }
|
||||
}, {
|
||||
title: '申请人',
|
||||
dataIndex: 'principalMail',
|
||||
dataIndex: 'applicantName',
|
||||
align: 'center',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
@@ -177,28 +185,34 @@ const columns = [
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '状态',
|
||||
dataIndex: 'status',
|
||||
dataIndex: 'paymentStatus_dictText',
|
||||
align: 'center',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '操作',
|
||||
dataIndex: 'action',
|
||||
align: 'center',
|
||||
width: 160,
|
||||
scopedSlots: { customRender: 'action' }
|
||||
}
|
||||
]
|
||||
|
||||
export default {
|
||||
name: 'PaymentVoucher',
|
||||
components: { PaymentVoucherModal },
|
||||
components: { PaymentVoucherModal, PreviewImgModal, ProofInfoModal },
|
||||
mixins: [JeroListMixin],
|
||||
data() {
|
||||
return {
|
||||
columns,
|
||||
// 审核信息
|
||||
auditInfo: [],
|
||||
// 应付金额
|
||||
receivableAmount: 0,
|
||||
// 实付金额
|
||||
paidAmount: 0,
|
||||
url: {
|
||||
list: ''
|
||||
list: '/paymentCheck/payPaymentCheck/amountReceivedList',
|
||||
delete: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -212,12 +226,16 @@ export default {
|
||||
if (arg === 1) {
|
||||
this.ipagination.current = 1
|
||||
}
|
||||
var params = this.getQueryParams()//查询条件
|
||||
let params = this.getQueryParams()//查询条件
|
||||
params.id = this.$route.query.projectId
|
||||
params.projectType = this.$route.query.projectType
|
||||
this.loading = true
|
||||
this.getAction(this.url.list, params).then((res) => {
|
||||
getAction(this.url.list, params).then((res) => {
|
||||
if (res.success) {
|
||||
//update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||
this.dataSource = res.result.records || res.result
|
||||
this.dataSource = res.result.list
|
||||
this.receivableAmount = res.result.receivableAmount
|
||||
this.paidAmount = res.result.paidAmount
|
||||
if (res.result.total) {
|
||||
this.ipagination.total = res.result.total
|
||||
//清空列表选中
|
||||
@@ -230,6 +248,7 @@ export default {
|
||||
if (res.code === 510) {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
@@ -240,6 +259,38 @@ export default {
|
||||
this.$refs.stageModal.projectId = this.$route.query.projectId
|
||||
this.$refs.stageModal.projectType = this.$route.query.projectType
|
||||
this.$refs.stageModal.visible = true
|
||||
},
|
||||
/**
|
||||
* 缴费凭证 src
|
||||
*/
|
||||
proofSrc(imgId) {
|
||||
return `${ window._CONFIG['domianURL'] }/sys/common/download/${ imgId }`
|
||||
},
|
||||
/**
|
||||
* 预览缴费凭证
|
||||
* @param imgId
|
||||
*/
|
||||
previewProofImg(imgId) {
|
||||
this.$refs.previewImg.title = '缴费凭证图片'
|
||||
this.$refs.previewImg.imgId = imgId
|
||||
this.$refs.previewImg.visible = true
|
||||
console.log()
|
||||
},
|
||||
/**
|
||||
* 查看
|
||||
* @param record
|
||||
*/
|
||||
viewProof(record) {
|
||||
this.$refs.proofInfo.title = '凭证信息'
|
||||
this.$refs.proofInfo.open(record)
|
||||
},
|
||||
/**
|
||||
* 编辑
|
||||
* @param record
|
||||
*/
|
||||
editProof(record) {
|
||||
this.$refs.stageModal.title = '编辑阶段'
|
||||
this.$refs.stageModal.edit(record)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -297,4 +348,18 @@ export default {
|
||||
.ant-list {
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
}
|
||||
|
||||
.proof-img-box {
|
||||
width: 100%;
|
||||
max-height: 120px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
img {
|
||||
cursor: pointer;
|
||||
max-width: 100%;
|
||||
max-height: 120px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -9,6 +9,26 @@
|
||||
@cancel="handleCancel"
|
||||
cancelText="关闭">
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<!-- 审核信息-->
|
||||
<div v-if="!!model.id">
|
||||
<h3 class="title">审核信息</h3>
|
||||
<div>
|
||||
<div class="info-item">
|
||||
<label>审核结果:</label>
|
||||
<div>{{ model.paymentStatus_dictText }}</div>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<label>审核人:</label>
|
||||
<div>{{ model.reviewerName }}</div>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<label>审核时间:</label>
|
||||
<div>{{ model.reviewTime }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 class="title">凭证信息</h3>
|
||||
</div>
|
||||
<a-form :form="form">
|
||||
<a-form-item label="缴费金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入缴费金额"
|
||||
@@ -80,7 +100,7 @@ export default {
|
||||
edit: ''
|
||||
},
|
||||
projectId: '',
|
||||
projectType: ''
|
||||
projectType: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -155,6 +175,32 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style scoped lang="less">
|
||||
h3 {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
h3.title::before {
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
left: -10px;
|
||||
content: "";
|
||||
height: 20px;
|
||||
width: 2px;
|
||||
background: #069f99;
|
||||
}
|
||||
|
||||
.info-item {
|
||||
display: flex;
|
||||
padding: 5px 0;
|
||||
|
||||
label {
|
||||
color: #666666;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
div {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,49 @@
|
||||
<template>
|
||||
<j-modal
|
||||
:title="title"
|
||||
:width="width"
|
||||
:visible="visible"
|
||||
:confirmLoading="confirmLoading"
|
||||
switchFullscreen
|
||||
@cancel="handleCancel"
|
||||
cancelText="关闭">
|
||||
|
||||
<img :src="imgSrc" class="preview-img">
|
||||
|
||||
<template slot="footer">
|
||||
<a-button @click="handleCancel">关闭</a-button>
|
||||
</template>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'PreviewImgModal',
|
||||
data() {
|
||||
return {
|
||||
title: '图片',
|
||||
width: 800,
|
||||
visible: false,
|
||||
confirmLoading: false,
|
||||
// 图片id
|
||||
imgId: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
imgSrc() {
|
||||
return `${ window._CONFIG['domianURL'] }/sys/common/download/${ this.imgId }`
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleCancel() {
|
||||
this.visible = false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.preview-img {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,142 @@
|
||||
<template>
|
||||
<j-modal
|
||||
:title="title"
|
||||
:width="width"
|
||||
:visible="visible"
|
||||
:confirmLoading="confirmLoading"
|
||||
switchFullscreen
|
||||
@cancel="handleCancel"
|
||||
cancelText="关闭">
|
||||
|
||||
<div>
|
||||
<div class="project-name">{{ projectName }}</div>
|
||||
|
||||
<h3 class="title">审核信息</h3>
|
||||
<div>
|
||||
<div class="info-item">
|
||||
<label>审核结果:</label>
|
||||
<div>{{ proofInfo.paymentStatus_dictText }}</div>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<label>审核人:</label>
|
||||
<div>{{ proofInfo.reviewerName }}</div>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<label>审核时间:</label>
|
||||
<div>{{ proofInfo.reviewTime }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 class="title">凭证信息</h3>
|
||||
<div>
|
||||
<div class="info-item">
|
||||
<label>缴费金额:</label>
|
||||
<div>{{ proofInfo.amountReceived }}元</div>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<label>缴费日期:</label>
|
||||
<div>{{ proofInfo.paymentDate }}元</div>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<label>付款凭证:</label>
|
||||
<div class="proof-img">
|
||||
<img :src="proofSrc(proofInfo.proof)">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template slot="footer">
|
||||
<a-button @click="handleCancel">关闭</a-button>
|
||||
</template>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'ProofInfoModal',
|
||||
props: {
|
||||
// 项目名称
|
||||
projectName: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '图片',
|
||||
width: 800,
|
||||
visible: false,
|
||||
confirmLoading: false,
|
||||
// 图片id
|
||||
imgId: '',
|
||||
// 缴费凭证信息
|
||||
proofInfo: {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 打开
|
||||
* @param record
|
||||
*/
|
||||
open(record) {
|
||||
this.proofInfo = record
|
||||
console.log(this.proofInfo)
|
||||
this.visible = true
|
||||
},
|
||||
handleCancel() {
|
||||
this.visible = false
|
||||
},
|
||||
/**
|
||||
* 缴费凭证 src
|
||||
*/
|
||||
proofSrc(imgId) {
|
||||
return `${ window._CONFIG['domianURL'] }/sys/common/download/${ imgId }`
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.project-name {
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
h3 {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
h3.title::before {
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
left: -10px;
|
||||
content: "";
|
||||
height: 20px;
|
||||
width: 2px;
|
||||
background: #069f99;
|
||||
}
|
||||
|
||||
.info-item {
|
||||
display: flex;
|
||||
padding: 5px 0;
|
||||
|
||||
label {
|
||||
color: #666666;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
div {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.proof-img {
|
||||
width: calc(100% - 6rem);
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -160,8 +160,8 @@ export default {
|
||||
font-family: PingFang SC, PingFang SC-Bold;
|
||||
font-weight: 700;
|
||||
color: #069f99;
|
||||
overflow: hidden;
|
||||
word-break: keep-all;
|
||||
text-overflow: ellipsis;
|
||||
//overflow: hidden;
|
||||
//word-break: keep-all;
|
||||
//text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
||||
@@ -197,8 +197,8 @@ export default {
|
||||
font-family: PingFang SC, PingFang SC-Bold;
|
||||
font-weight: 700;
|
||||
color: #069f99;
|
||||
overflow: hidden;
|
||||
word-break: keep-all;
|
||||
text-overflow: ellipsis;
|
||||
//overflow: hidden;
|
||||
//word-break: keep-all;
|
||||
//text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
||||
@@ -121,6 +121,7 @@ export default {
|
||||
title: '操作',
|
||||
dataIndex: 'action',
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
scopedSlots: { customRender: 'action' }
|
||||
}
|
||||
],
|
||||
|
||||
@@ -146,9 +146,9 @@ export default {
|
||||
font-family: PingFang SC, PingFang SC-Bold;
|
||||
font-weight: 700;
|
||||
color: #069f99;
|
||||
overflow: hidden;
|
||||
word-break: keep-all;
|
||||
text-overflow: ellipsis;
|
||||
//overflow: hidden;
|
||||
//word-break: keep-all;
|
||||
//text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -102,41 +102,50 @@ export default {
|
||||
title: '项目名称',
|
||||
dataIndex: 'chargeProject',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
scopedSlots: { customRender: 'projectName' }
|
||||
}, {
|
||||
title: '项目负责人',
|
||||
dataIndex: 'principalName',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '负责人联系电话',
|
||||
dataIndex: 'principalPhone',
|
||||
align: 'center',
|
||||
width: 140,
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '负责人邮箱',
|
||||
dataIndex: 'principalEmail',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '运行周期',
|
||||
dataIndex: 'operationCycle',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '任务及目标',
|
||||
dataIndex: 'missionAndObjectives',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '缴费凭证状态',
|
||||
dataIndex: 'paymentStatus_dictText',
|
||||
align: 'center',
|
||||
width: 120,
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '操作',
|
||||
dataIndex: 'action',
|
||||
align: 'center',
|
||||
width: 100,
|
||||
fixed: 'right',
|
||||
scopedSlots: { customRender: 'action' }
|
||||
}
|
||||
],
|
||||
@@ -204,8 +213,8 @@ export default {
|
||||
font-family: PingFang SC, PingFang SC-Bold;
|
||||
font-weight: 700;
|
||||
color: #069f99;
|
||||
overflow: hidden;
|
||||
word-break: keep-all;
|
||||
text-overflow: ellipsis;
|
||||
//overflow: hidden;
|
||||
//word-break: keep-all;
|
||||
//text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user