工作组变更;统计样式;单个开票

This commit is contained in:
zhaoxiao
2021-09-17 11:16:22 +08:00
parent ef627d34dd
commit d391eeb9ee
12 changed files with 214 additions and 154 deletions
+4 -1
View File
@@ -59,6 +59,8 @@ const distribute = (param) => postAction('/project/payWorkingGroupDistributionRe
const batchDistribute = (param) => postAction('/project/payWorkingGroupDistributionRecord/addBatch', param)
// 资料分发成员列表
const distributeMemberList = (param) => getAction('/project/payWorkingGroupDistributionRecord/list', param)
// 催款提醒
const dunningReminder = (param) => postAction('/project/payWorkingGroupSubitem/reminders', param)
export {
getWorkingGroupById,
@@ -89,5 +91,6 @@ export {
aduitCompany,
distribute,
batchDistribute,
distributeMemberList
distributeMemberList,
dunningReminder
}
@@ -131,7 +131,6 @@ export default {
})
},
handleOk() {
console.log(this.projectType, this.chargeCompanyName)
this.form.validateFields((err, values) => {
if (!err) {
// values.chargeCompanyName = this.chargeCompanyName
@@ -142,7 +141,19 @@ export default {
if (this.model.id) {
okHttpMethod = editPayBill(formData)
} else {
okHttpMethod = addPayBill(this.projectId, this.projectType, formData)
let addData = formData
let bmpList = [
{
invoiceAmount: formData.invoiceAmount,
projectId: this.projectId,
projectType: this.projectType,
remark: formData.remark
}
]
addData.bmpList = bmpList
delete addData.projectName
delete addData.remark
okHttpMethod = addPayBill(addData)
}
okHttpMethod.then(res => {
if (res.success) {
@@ -136,7 +136,7 @@
import { JeroListMixin } from '@/mixins/JeroListMixin'
import JYearDate from '@comp/jero/JYearDate'
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
import { getWorkingGroupById, getChargeNotice } from '@api/incomePaymentsApi'
import { getWorkingGroupById, getChargeNotice, dunningReminder } from '@api/incomePaymentsApi'
import StatusSlot from '../../components/tools/StatusSlot'
import ProjectDetailModal from '../../components/ProjectDetailModal'
import WorkingGroupMemberUnitModule from './modules/WorkingGroupMemberUnitModule'
@@ -402,6 +402,28 @@ export default {
this.$message.warn('请先选择成员')
return
}
let param = {
projectIds: this.selectedRowKeys.join(',').toString()
}
const that = this
this.$confirm({
title: '确认催款',
content: '是否向选中的成员发送催款提醒?',
onOk: function () {
that.loading = true
dunningReminder(param).then((res) => {
if (res.success) {
that.$message.success(res.message)
that.loadData()
that.onClearSelected()
} else {
that.$message.warning(res.message)
}
}).finally(() => {
that.loading = false
})
}
})
},
/**
* 文件预览
@@ -9,7 +9,7 @@
@cancel="handleCancel"
cancelText="关闭">
<a-spin :spinning="confirmLoading">
<a-form>
<a-form :form="form">
<a-row>
<a-col :span="2"></a-col>
<a-col :span="20">
@@ -20,11 +20,16 @@
:replaceFields="replaceFields"
checkable
@check="onCheck"/>
<a-input style="display: none" v-decorator="['memberName',validatorRules.memberName]"></a-input>
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -69,6 +74,7 @@ export default {
title: '分发',
width: 500,
confirmLoading: false,
form: this.$form.createForm(this),
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
@@ -86,13 +92,9 @@ export default {
key: 'id'
},
validatorRules: {
dataId: {
rules: [{ required: true, message: '请重新上传文件' }],
validateTrigger: 'change'
},
memberName: {
rules: [{ required: true, message: '请选择成员' }],
validateTrigger: 'blur, change'
rules: [{ required: true, message: '请选择成员单位'}],
validateTrigger: 'change'
}
},
url: {
@@ -138,46 +140,67 @@ export default {
this.memberList = []
},
handleOk() {
if (this.isBatch) {
// 批量分发
const formData = {
contactsIds: this.checkedKeys.join(','),
dataIds: this.recordId,
projectId: this.projectId,
projectType: this.projectType
}
batchDistribute(formData).then(res => {
console.log(res)
if (res.success) {
this.$message.success(res.message)
this.close()
this.$emit('ok')
} else {
this.$message.warn(res.message)
}
})
} else {
// 单个分发
const formData = {
contactsId: this.checkedKeys.join(','),
dataId: this.recordId,
projectId: this.projectId,
projectType: this.projectType
}
distribute(formData).then(res => {
console.log(res)
if (res.success) {
this.$message.success(res.message)
this.close()
this.$emit('ok')
} else {
this.$message.warn(res.message)
}
})
if (this.checkedKeys.length === 0) {
this.form.validateFields()
return
}
let str = this.checkedKeys.join(',').toString()
console.log(str)
this.form.setFieldsValue({memberName: str})
this.form.validateFields((err, values) => {
if (!err) {
this.confirmLoading = true
if (this.isBatch) {
// 批量分发
const formData = {
contactsIds: this.checkedKeys.join(','),
dataIds: this.recordId,
projectId: this.projectId,
projectType: this.projectType
}
batchDistribute(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.close()
this.$emit('ok')
} else {
this.$message.warn(res.message)
}
}).finally(() => {
this.confirmLoading = false
})
} else {
// 单个分发
const formData = {
contactsIds: this.checkedKeys.join(','),
dataId: this.recordId,
projectId: this.projectId,
projectType: this.projectType
}
distribute(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.close()
this.$emit('ok')
} else {
this.$message.warn(res.message)
}
}).finally(() => {
this.confirmLoading = false
})
}
}
})
},
handleCancel() {
this.close()
},
checkMember(rules, value, callback) {
if (this.checkedKeys.length === 0) {
callback('请选选择成员')
} else {
callback()
}
}
}
}
@@ -95,6 +95,7 @@
:pagination="ipagination"
:loading="loading"
@change="handleTableChange"
:class="dataSource.length === 0 ? 'show-scroll' : ''"
class="j-table-force-nowrap main-table">
<!-- 项目名称-->
@@ -107,7 +108,7 @@
<j-ellipsis :value="text" :length="18"></j-ellipsis>
</template>
<template slot="footer" slot-scope="currentPageData">
<template slot="footer" v-if="dataSource.length > 0">
<a-table
size="middle"
@@ -250,14 +251,7 @@ export default {
width: 140
}
],
footerDataSource: [
{
id: 1,
title: '总计',
receivableAmount: 4000,
paidAmount: 200
}
],
footerDataSource: [],
url: {
list: ''
}
@@ -274,7 +268,9 @@ export default {
* 同步表与footer滚动,保留底部滚动条
*/
setScroll() {
//
if (this.dataSource.length === 0) {
return
}
let dom = this.$refs.footTable.$el.querySelectorAll('.ant-table-body')[0]
console.log(this.$refs.footTable.$el.querySelectorAll('.ant-table-body'))
dom.addEventListener(
@@ -328,6 +324,12 @@ export default {
}
}
.show-scroll {
/deep/ .ant-table-body {
overflow-x: auto !important;
}
}
// 去除底部表格边框
.footer-table {
/deep/ .ant-table-tbody > tr > td {
@@ -66,6 +66,7 @@
:loading="loading"
:scroll="{x: 1100}"
@change="handleTableChange"
:class="dataSource.length === 0 ? 'show-scroll' : ''"
class="j-table-force-nowrap main-table">
<!-- 项目名称-->
@@ -82,7 +83,7 @@
<a @click="goDetail(record.id)">详情</a>
</span>
<template slot="footer" slot-scope="currentPageData">
<template slot="footer" v-if="dataSource.length > 0">
<a-table
size="middle"
@@ -170,14 +171,6 @@ export default {
scopedSlots: { customRender: 'text' }
}
],
dataSource: [
{
id: 1,
workGroup: 'zx工作组',
allMoney: '500',
comeAllMoney: '600'
}
],
// 总计表头,与主表表头一致
columnsFooter: [
{
@@ -212,14 +205,7 @@ export default {
}
],
// 总计数据
footerDataSource: [
{
id: 1,
title: '总计',
allMoney: '500',
comeAllMoney: '600'
}
]
footerDataSource: []
}
},
mounted() {
@@ -228,7 +214,9 @@ export default {
methods: {
// 同步表与footer滚动,保留底部滚动条
setScroll() {
//
if (this.dataSource.length === 0) {
return
}
let dom = this.$refs.footTable.$el.querySelectorAll('.ant-table-body')[0]
console.log(this.$refs.footTable.$el.querySelectorAll('.ant-table-body'))
dom.addEventListener(
@@ -264,6 +252,12 @@ export default {
}
}
.show-scroll {
/deep/ .ant-table-body {
overflow-x: auto !important;
}
}
// 去除底部表格边框
.footer-table {
/deep/ .ant-table-tbody > tr > td {
@@ -94,6 +94,7 @@
:pagination="ipagination"
:loading="loading"
@change="handleTableChange"
:class="dataSource.length === 0 ? 'show-scroll' : ''"
class="j-table-force-nowrap main-table">
<!-- 项目名称-->
@@ -106,7 +107,7 @@
<j-ellipsis :value="text" :length="18"></j-ellipsis>
</template>
<template slot="footer" slot-scope="currentPageData">
<template slot="footer" v-if="dataSource.length > 0">
<a-table
size="middle"
@@ -138,6 +139,7 @@ import PageHeaderTitle from '../../../components/layouts/PageHeaderTitle'
import { JeroListMixin } from '../../../mixins/JeroListMixin'
import JYearDate from '../../../components/jero/JYearDate'
import SelectPrincipal from '../../../components/company/SelectPrincipal'
import { queryDepartTreeList } from '../../../api/api'
export default {
name: 'IndividualPaymentStatisticsList',
@@ -200,12 +202,6 @@ export default {
width: 140
}
],
dataSource: [
{
id: 1,
chargeProject: '项目名称'
}
],
columnsFooter: [
{
title: '序号',
@@ -248,26 +244,24 @@ export default {
width: 140
}
],
footerDataSource: [
{
id: 1,
title: '总计',
receivableAmount: 4000,
paidAmount: 200
}
],
footerDataSource: [],
url: {
list: ''
}
}
},
created() {
this.loadDepartTreeData()
},
mounted() {
this.setScroll()
},
methods: {
// 同步表与footer滚动,保留底部滚动条
setScroll() {
//
if (this.dataSource.length === 0) {
return
}
let dom = this.$refs.footTable.$el.querySelectorAll('.ant-table-body')[0]
console.log(this.$refs.footTable.$el.querySelectorAll('.ant-table-body'))
dom.addEventListener(
@@ -284,6 +278,24 @@ export default {
this.$router.push({
path: '/statisticalReport/departmentStatistics/IndividualPaymentStatisticsDetail'
})
},
/**
* 获取科室(部门)数据
*/
loadDepartTreeData() {
queryDepartTreeList().then((res) => {
if (res.success) {
this.treeDepartData = []
let treeList = res.result
for (let a = 0; a < treeList.length; a++) {
let temp = treeList[a]
temp.isLeaf = temp.leaf
this.treeDepartData.push(temp)
}
} else {
console.log(res.message)
}
})
}
}
}
@@ -308,6 +320,12 @@ export default {
}
}
.show-scroll {
/deep/ .ant-table-body {
overflow-x: auto !important;
}
}
// 去除底部表格边框
.footer-table {
/deep/ .ant-table-tbody > tr > td {
@@ -66,6 +66,7 @@
:loading="loading"
:scroll="{x: 1100}"
@change="handleTableChange"
:class="dataSource.length === 0 ? 'show-scroll' : ''"
class="j-table-force-nowrap main-table">
<!-- 项目名称-->
@@ -82,7 +83,7 @@
<a @click="goDetail(record.id)">详情</a>
</span>
<template slot="footer" slot-scope="currentPageData">
<template slot="footer" v-if="dataSource.length > 0">
<a-table
size="middle"
@@ -172,14 +173,6 @@ export default {
scopedSlots: { customRender: 'text' }
}
],
dataSource: [
{
id: 1,
workGroup: 'zx工作组',
allMoney: '500',
comeAllMoney: '600'
}
],
// 总计表头,与主表表头一致
columnsFooter: [
{
@@ -214,14 +207,7 @@ export default {
}
],
// 总计数据
footerDataSource: [
{
id: 1,
title: '总计',
allMoney: '500',
comeAllMoney: '600'
}
]
footerDataSource: []
}
},
mounted() {
@@ -230,7 +216,9 @@ export default {
methods: {
// 同步表与footer滚动,保留底部滚动条
setScroll() {
//
if (this.dataSource.length === 0) {
return
}
let dom = this.$refs.footTable.$el.querySelectorAll('.ant-table-body')[0]
console.log(this.$refs.footTable.$el.querySelectorAll('.ant-table-body'))
dom.addEventListener(
@@ -266,6 +254,12 @@ export default {
}
}
.show-scroll {
/deep/ .ant-table-body {
overflow-x: auto !important;
}
}
// 去除底部表格边框
.footer-table {
/deep/ .ant-table-tbody > tr > td {
@@ -66,6 +66,7 @@
:loading="loading"
:scroll="{x: 1100}"
@change="handleTableChange"
:class="dataSource.length === 0 ? 'show-scroll' : ''"
class="j-table-force-nowrap main-table">
<!-- 项目名称-->
@@ -82,7 +83,7 @@
<a @click="goDetail(record.id)">详情</a>
</span>
<template slot="footer" slot-scope="currentPageData">
<template slot="footer" v-if="dataSource.length > 0">
<a-table
size="middle"
@@ -176,14 +177,6 @@ export default {
scopedSlots: { customRender: 'text' }
}
],
dataSource: [
{
id: 1,
workGroup: 'zx工作组',
allMoney: '500',
comeAllMoney: '600'
}
],
// 总计表头,与主表表头一致
columnsFooter: [
{
@@ -223,14 +216,7 @@ export default {
}
],
// 总计数据
footerDataSource: [
{
id: 1,
title: '总计',
allMoney: '500',
comeAllMoney: '600'
}
]
footerDataSource: []
}
},
mounted() {
@@ -239,7 +225,9 @@ export default {
methods: {
// 同步表与footer滚动,保留底部滚动条
setScroll() {
//
if (this.dataSource.length === 0) {
return
}
let dom = this.$refs.footTable.$el.querySelectorAll('.ant-table-body')[0]
console.log(this.$refs.footTable.$el.querySelectorAll('.ant-table-body'))
dom.addEventListener(
@@ -275,6 +263,12 @@ export default {
}
}
.show-scroll {
/deep/ .ant-table-body {
overflow-x: auto !important;
}
}
// 去除底部表格边框
.footer-table {
/deep/ .ant-table-tbody > tr > td {
@@ -54,6 +54,7 @@
:loading="loading"
:scroll="{x: 1100}"
@change="handleTableChange"
:class="dataSource.length === 0 ? 'show-scroll' : ''"
class="j-table-force-nowrap main-table">
<!-- 项目名称-->
@@ -70,7 +71,7 @@
<a @click="goDetail(record.id)">详情</a>
</span>
<template slot="footer" slot-scope="currentPageData">
<template slot="footer" v-if="dataSource.length > 0">
<a-table
size="middle"
@@ -161,14 +162,6 @@ export default {
scopedSlots: { customRender: 'action' }
}
],
dataSource: [
{
id: 1,
workGroup: 'zx工作组',
allMoney: '500',
comeAllMoney: '600'
}
],
// 总计表头,与主表表头一致
columnsFooter: [
{
@@ -202,14 +195,7 @@ export default {
}
],
// 总计数据
footerDataSource: [
{
id: 1,
title: '总计',
allMoney: '500',
comeAllMoney: '600'
}
]
footerDataSource: []
}
},
mounted() {
@@ -224,7 +210,9 @@ export default {
},
// 同步表与footer滚动,保留底部滚动条
setScroll() {
//
if (this.dataSource.length === 0) {
return
}
let dom = this.$refs.footTable.$el.querySelectorAll('.ant-table-body')[0]
console.log(this.$refs.footTable.$el.querySelectorAll('.ant-table-body'))
dom.addEventListener(
@@ -260,6 +248,12 @@ export default {
}
}
.show-scroll {
/deep/ .ant-table-body {
overflow-x: auto !important;
}
}
// 去除底部表格边框
.footer-table {
/deep/ .ant-table-tbody > tr > td {
@@ -43,7 +43,7 @@
</a-col>
<a-col :xxl="5" :xl="8" :lg="7" :md="8" :sm="24">
<a-form-item label="项目负责人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<select-principal placeholder="请选择项目负责人" v-model="queryParam.principalName"></select-principal>
<select-principal placeholder="请选择项目负责人" v-model="queryParam.principalNameId"></select-principal>
</a-form-item>
</a-col>
<a-col :xl="4" :lg="7" :md="8" :sm="24">
@@ -252,9 +252,6 @@ export default {
}
}
},
mounted() {
this.setScroll()
},
methods: {
loadData(arg) {
if (!this.url.list) {
@@ -54,6 +54,7 @@
:loading="loading"
:scroll="{x: 1100}"
@change="handleTableChange"
:class="dataSource.length === 0 ? 'show-scroll' : ''"
class="j-table-force-nowrap main-table">
<!-- 项目名称-->
@@ -70,7 +71,7 @@
<a @click="goDetail(record.id)">详情</a>
</span>
<template slot="footer">
<template slot="footer" v-if="dataSource.length > 0">
<a-table
size="middle"
@@ -212,9 +213,6 @@ export default {
footerDataSource: []
}
},
mounted() {
this.setScroll()
},
methods: {
loadData(arg) {
if (!this.url.list) {
@@ -237,7 +235,6 @@ export default {
comeAllMoney: res.result.sumOfReallyMoney.toString()
}
this.footerDataSource = [obj]
console.log(this.footerDataSource)
if (res.result.total) {
this.ipagination.total = res.result.total
//清空列表选中
@@ -246,6 +243,11 @@ export default {
this.ipagination.total = 0
}
}
if (this.dataSource.length > 0) {
this.$nextTick(() => {
this.setScroll()
})
}
if (res.code === 510) {
this.$message.warning(res.message)
}
@@ -304,6 +306,12 @@ export default {
}
}
.show-scroll {
/deep/ .ant-table-body {
overflow-x: auto !important;
}
}
// 去除底部表格边框
.footer-table {
/deep/ .ant-table-tbody > tr > td {