From d274778cb33212155a265458a67f415ea40c7509 Mon Sep 17 00:00:00 2001 From: danshihao Date: Wed, 6 Mar 2024 21:53:27 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=B7=A5=E4=BD=9C=E7=BB=84=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E6=96=B0=E5=A2=9E=E6=88=90=E5=91=98=E5=8D=95=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/incomeMeetingApi.js | 2 +- .../WorkingGroupProjectManagement.vue | 12 +- .../modules/WorkingGroupMemberUnitModule.vue | 123 +++++++++++++++++- 3 files changed, 130 insertions(+), 7 deletions(-) diff --git a/src/api/incomeMeetingApi.js b/src/api/incomeMeetingApi.js index 1b32a1e..d3773df 100644 --- a/src/api/incomeMeetingApi.js +++ b/src/api/incomeMeetingApi.js @@ -5,7 +5,7 @@ const getUserInfo = (params) => getAction('/sys/user/queryById',params) // 通过会议id获取会议的详细信息 const getMeetInfoById = (params) => getAction('/meeting/payMeeting/queryById',params) // 获取所有工作组项目 -const getAllWorkProjects = () => getAction('/project/payWorkingGroup/listAll') +const getAllWorkProjects = (params) => getAction('/project/payWorkingGroup/listAll', params) // 通过id获取参会人详细信息 const getSingUpUserInfo = (params) => getAction('/meeting/payMeetingSituation/queryById',params) diff --git a/src/views/projectManagement/WorkingGroupProjectManagement.vue b/src/views/projectManagement/WorkingGroupProjectManagement.vue index e4f16cb..bbafa1b 100644 --- a/src/views/projectManagement/WorkingGroupProjectManagement.vue +++ b/src/views/projectManagement/WorkingGroupProjectManagement.vue @@ -47,6 +47,7 @@
新增 批量删除 + 批量新增成员单位
@@ -122,6 +123,8 @@ + +
@@ -135,10 +138,11 @@ import PageHeaderTitle from '@comp/layouts/PageHeaderTitle' import IconWorkingGruop from '@/assets/imgs/icon/icon_working_group.png' import { copyWorkingGroup } from '../../api/incomePaymentsApi' import { getAction } from '../../api/manage' +import WorkingGroupMemberUnitModule from '@views/projectManagement/modules/WorkingGroupMemberUnitModule' export default { name: 'WorkingGroupProjectManagement', - components: { JYearDate, WorkingGroupProjectModule, SelectPrincipal, ProgressBar, PageHeaderTitle }, + components: {WorkingGroupMemberUnitModule, JYearDate, WorkingGroupProjectModule, SelectPrincipal, ProgressBar, PageHeaderTitle }, mixins: [JeroListMixin], data() { return { @@ -201,6 +205,12 @@ export default { } }, methods: { + // 批量新增成员信息 + handleBatchAddMemberUnit () { + this.$refs.workingGroupMemberUnitModule.add() + this.$refs.workingGroupMemberUnitModule.title = '批量新增成员单位' + this.$refs.workingGroupMemberUnitModule.disableSubmit = false + }, loadData(arg) { if (!this.url.list) { this.$message.error('请设置url.list属性!') diff --git a/src/views/projectManagement/modules/WorkingGroupMemberUnitModule.vue b/src/views/projectManagement/modules/WorkingGroupMemberUnitModule.vue index def390b..bf582cd 100644 --- a/src/views/projectManagement/modules/WorkingGroupMemberUnitModule.vue +++ b/src/views/projectManagement/modules/WorkingGroupMemberUnitModule.vue @@ -27,6 +27,31 @@ + + @@ -409,6 +434,7 @@ import SelectRevenueContract from '../../../components/tools/SelectRevenueContra import JDictSelectTag from '@comp/dict/JDictSelectTag' import { CalcAmountMixin } from '@/mixins/CalcAmountMixin' import JDate from '@/components/tools/JDate' +import {getAllWorkProjects} from '@api/incomeMeetingApi' export default { name: 'WorkingGroupMemberUnitModule', @@ -458,6 +484,12 @@ export default { type: Number, requirded: false, default: null + }, + // 是否批量添加 + isBatchAdd: { + type: Boolean, + required: false, + default: true } }, data() { @@ -549,10 +581,11 @@ export default { // hasContactOne: false, // 是否选择联系人1 // hasContactTwo: false, // 是否选择联系人2 // hasContactThree: false, // 是否选择联系人3 - showPayField: '', // 是否收费,控制收费字段是否显示 + showPayField: true, // 是否收费,控制收费字段是否显示(默认显示,只有外层确定不显示才不显示) url: { add: '/project/payWorkingGroupSubitem/add', - edit: '/project/payWorkingGroupSubitem/edit' + edit: '/project/payWorkingGroupSubitem/edit', + batchAdd: '/project/payWorkingGroupSubitem/batchAdd' }, // 默认的联系人数据 defaultPayWorkingGroupSubItemContact: { @@ -565,7 +598,15 @@ export default { methods: { addZero, add() { - this.edit({}) + const obj = {} + // 判断是否批量添加(工作组管理-批量新增成员单位) + if (this.isBatchAdd) { + // 获取当前年的工作组列表 + this.loadCurrentYearWorkingGroupList() + // 默认一个工作组 + obj.workingGroupIds = [{}] + } + this.edit(obj) // 判断默认来款用途是否为合同(收入合同新增) if (this.defaultChargeWay) { this.loadWorkingGroupList() @@ -579,6 +620,20 @@ export default { }) } }, + /** + * 获取当前年工作组列表 + */ + loadCurrentYearWorkingGroupList() { + getAllWorkProjects({ + year: new Date().getFullYear() + }).then(res => { + if (res.success) { + this.workingGroupList = res.result + } else { + this.$message.warn(res.message) + } + }) + }, /** * 获取工作组列表 */ @@ -715,19 +770,24 @@ export default { let httpurl = '' let method = 'post' if (!this.model.id) { - httpurl += this.url.add + // 如果是批量添加,调用批量添加的接口 + httpurl += this.isBatchAdd ? this.url.batchAdd : this.url.add } else { httpurl += this.url.edit } if (this.workingGroupId) { values.workingGroupId = this.workingGroupId } + // 批量添加 + if (Array.isArray(values.workingGroupIds)) { + values.workingGroupIds = values.workingGroupIds.join(',') + } // 企业联系人信息中将没有值的去掉 let haveValueContactArr = values.payWorkingGroupSubItemContactsList.filter(tt => tt.contactsId) let obj = { payWorkingGroupSubItemContactsList: haveValueContactArr } - const formData = Object.assign(this.model, values, obj) + const formData = Object.assign({}, this.model, values, obj) console.log('表单提交数据', formData) httpAction(httpurl, formData, method).then((res) => { if (res.success) { @@ -896,6 +956,30 @@ export default { } callback() }, + validateWorkingGroupRequired(rule, value, callback) { + if (value) { + callback() + } + callback('请选择工作组1') + }, + /** + * 校验工作组是否重复 + * @param rule + * @param value + * @param callback + */ + validateWorkingGroup(rule, value, callback) { + if (value) { + let workingGroupIds = this.form.getFieldValue('workingGroupIds') + let hasValueArr = workingGroupIds.filter(id => id === value) + if (hasValueArr.length <= 1) { + callback() + } + callback('请选择不同的工作组') + return + } + callback() + }, /** * 企业联系人1、邮寄联系人联动 * @param value @@ -962,6 +1046,35 @@ export default { // this.form.setFieldsValue({ remarksThree: null }) // } // }, + /** + * 添加工作组 + * @param index + */ + handleAddWorkGroup (index) { + this.model.workingGroupIds.splice(index + 1, 0, '') + this.$forceUpdate() + let formData = this.form.getFieldValue('workingGroupIds') + formData.splice(index + 1, 0, '') + this.$nextTick(() => { + this.form.setFieldsValue({ workingGroupIds: formData }) + }) + }, + /** + * 删除工作组 + * @param index + */ + handleDelWorkGroup (index) { + if (this.model.workingGroupIds.length === 1) { + this.$message.warn('最少需要一个工作组') + return + } + this.model.workingGroupIds.splice(index, 1) + let formData = this.form.getFieldValue('workingGroupIds') + formData.splice(index, 1) + this.$nextTick(() => { + this.form.setFieldsValue({ workingGroupIds: formData }) + }) + }, /** * 添加联系人 * @param index