From 5ef74a5a94db63acf718c55b014ab5a16e59b135 Mon Sep 17 00:00:00 2001 From: danshihao Date: Thu, 7 Mar 2024 10:23:36 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=B7=A5=E4=BD=9C=E7=BB=84=E3=80=81?= =?UTF-8?q?=E8=B5=B7=E8=8D=89=E7=BB=84=E6=89=B9=E9=87=8F=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=88=90=E5=91=98=E5=8D=95=E4=BD=8D=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/incomePaymentsApi.js | 5 +- .../draftingGroup/DraftingGroupManagement.vue | 12 +- .../modules/DraftingGroupMemberUnitModule.vue | 141 +++++++++++++++--- .../modules/WorkingGroupMemberUnitModule.vue | 34 +++-- 4 files changed, 152 insertions(+), 40 deletions(-) diff --git a/src/api/incomePaymentsApi.js b/src/api/incomePaymentsApi.js index 56390b2..20a89ad 100644 --- a/src/api/incomePaymentsApi.js +++ b/src/api/incomePaymentsApi.js @@ -157,6 +157,8 @@ const memberCopy = (params) => getAction('', params) // 工作组成员维护-调账 const workingGroupEditAccount = (param) => getAction('/project/payWorkingGroupSubitem/editAccount', param) +// 获取所有起草组项目 +const getAllDraftProjects = (params) => getAction('/drafting/payDraftingGroup/listAll', params) export { getWorkingGroupById, @@ -239,5 +241,6 @@ export { memberDrawTicket, memberCopy, - workingGroupEditAccount + workingGroupEditAccount, + getAllDraftProjects } diff --git a/src/views/draftingGroup/DraftingGroupManagement.vue b/src/views/draftingGroup/DraftingGroupManagement.vue index 7d58a9f..f2b5624 100644 --- a/src/views/draftingGroup/DraftingGroupManagement.vue +++ b/src/views/draftingGroup/DraftingGroupManagement.vue @@ -63,6 +63,7 @@
新增 批量删除 + 批量新增成员单位
@@ -112,6 +113,8 @@ + + @@ -124,10 +127,11 @@ import IconDraftingGruop from '@/assets/imgs/icon/icon_drafting_group.png' import {copyDraftingGroup, getWorkingGroupList} from '../../api/incomePaymentsApi' import { getAction } from '../../api/manage' import DraftingGroupModule from './modules/DraftingGroupModule' +import DraftingGroupMemberUnitModule from '@views/draftingGroup/modules/DraftingGroupMemberUnitModule' export default { name: 'DraftingGroupManagement', - components: { JYearDate, DraftingGroupModule, SelectPrincipal, PageHeaderTitle }, + components: {DraftingGroupMemberUnitModule, JYearDate, DraftingGroupModule, SelectPrincipal, PageHeaderTitle }, mixins: [JeroListMixin], data() { return { @@ -194,6 +198,12 @@ export default { this.loadWorkingGroupList() }, methods: { + // 批量新增成员信息 + handleBatchAddMemberUnit () { + this.$refs.draftingGroupMemberUnitModule.add() + this.$refs.draftingGroupMemberUnitModule.title = '批量新增成员单位' + this.$refs.draftingGroupMemberUnitModule.disableSubmit = false + }, // 获取工作组下拉列表 loadWorkingGroupList () { getWorkingGroupList().then(res => { diff --git a/src/views/draftingGroup/modules/DraftingGroupMemberUnitModule.vue b/src/views/draftingGroup/modules/DraftingGroupMemberUnitModule.vue index 41821cb..3a5de6d 100644 --- a/src/views/draftingGroup/modules/DraftingGroupMemberUnitModule.vue +++ b/src/views/draftingGroup/modules/DraftingGroupMemberUnitModule.vue @@ -10,23 +10,31 @@ cancelText="关闭"> - - - - - - {{ item.workingGroupProject }} - - - - - + + @@ -104,7 +112,7 @@ import pick from 'lodash.pick' import { httpAction } from '@api/manage' import CompanySelect from '@comp/company/CompanySelect' import SelectContacts from '@comp/company/SelectContacts' -import { getWorkingGroupListByNotCompany } from '../../../api/incomePaymentsApi' +import {getAllDraftProjects, getWorkingGroupListByNotCompany} from '../../../api/incomePaymentsApi' // import { isRepeat } from '../../../utils/util' import { addZero } from '../../../utils/util' import { money } from '../../../utils/validate' @@ -159,6 +167,12 @@ export default { type: Number, requirded: false, default: null + }, + // 是否批量添加 + isBatchAdd: { + type: Boolean, + required: false, + default: false } }, data() { @@ -239,7 +253,7 @@ export default { selectedMailContact: null, // 编辑时的邮寄联系人 selectedChargeNotice: null, // 选中的收费通知号 draftingGroupId: null, - workingGroupList: [], + draftingGroupList: [], disabledCompany: false, // 企业是否禁用 isAssociatedContract: false, // 是否关联合同 // hasContactOne: false, // 是否选择联系人1 @@ -247,7 +261,8 @@ export default { // hasContactThree: false, // 是否选择联系人3 url: { add: '/drafting/payDraftingGroupSubitem/add', - edit: '/drafting/payDraftingGroupSubitem/edit' + edit: '/drafting/payDraftingGroupSubitem/edit', + batchAdd: '/drafting/payDraftingGroupSubitem/batchAdd' }, // 默认的联系人数据 defaultPayWorkingGroupSubItemContact: { @@ -260,7 +275,15 @@ export default { methods: { addZero, add() { - this.edit({}) + const obj = {} + // 判断是否批量添加(工作组管理-批量新增成员单位) + if (this.isBatchAdd) { + // 获取当前年的工作组列表 + this.loadCurrentYearDraftingGroupList() + // 默认一个起草组 + obj.draftingGroupIdList = [undefined] + } + this.edit(obj) // 判断默认来款用途是否为合同(收入合同新增) if (this.defaultChargeWay) { this.loadWorkingGroupList() @@ -274,6 +297,20 @@ export default { }) } }, + /** + * 获取当前年起草组列表 + */ + loadCurrentYearDraftingGroupList() { + getAllDraftProjects({ + year: new Date().getFullYear() + }).then(res => { + if (res.success) { + this.draftingGroupList = res.result + } else { + this.$message.warn(res.message) + } + }) + }, /** * 获取工作组列表 */ @@ -409,12 +446,19 @@ export default { let httpurl = '' let method = 'post' if (!this.model.id) { - httpurl += this.url.add + // 如果是批量添加,调用批量添加的接口 + httpurl += this.isBatchAdd ? this.url.batchAdd : this.url.add // 通过添加成员来的,默认状态为通过 values.checkResult = 2 } else { httpurl += this.url.edit } + // 批量添加 + if (Array.isArray(values.draftingGroupIdList)) { + // 过滤空 + values.draftingGroupIdList = values.draftingGroupIdList.filter(item => !!item) + values.draftingGroupIds = values.draftingGroupIdList.join(',') + } if (this.draftingGroupId) { values.draftingGroupId = this.draftingGroupId } @@ -535,6 +579,59 @@ export default { } callback() }, + validateDraftingGroupRequired(rule, value, callback) { + if (value) { + callback() + } + callback('请选择起草组1') + }, + /** + * 校验工作组是否重复 + * @param rule + * @param value + * @param callback + */ + validateDraftingGroup(rule, value, callback) { + if (value) { + let draftingGroupIdList = this.form.getFieldValue('draftingGroupIdList') + let hasValueArr = draftingGroupIdList.filter(id => id === value) + if (hasValueArr.length <= 1) { + callback() + } + callback('请选择不同的起草组') + return + } + callback() + }, + /** + * 添加起草组 + * @param index + */ + handleAddDraftGroup (index) { + this.model.draftingGroupIdList.splice(index + 1, 0, undefined) + this.$forceUpdate() + let formData = this.form.getFieldValue('draftingGroupIdList') + formData.splice(index + 1, 0, undefined) + this.$nextTick(() => { + this.form.setFieldsValue({ draftingGroupIdList: formData }) + }) + }, + /** + * 删除起草组 + * @param index + */ + handleDelDraftGroup (index) { + if (this.model.draftingGroupIdList.length === 1) { + this.$message.warn('最少需要一个起草组') + return + } + this.model.draftingGroupIdList.splice(index, 1) + let formData = this.form.getFieldValue('draftingGroupIdList') + formData.splice(index, 1) + this.$nextTick(() => { + this.form.setFieldsValue({ draftingGroupIdList: formData }) + }) + }, /** * 添加联系人 * @param index diff --git a/src/views/projectManagement/modules/WorkingGroupMemberUnitModule.vue b/src/views/projectManagement/modules/WorkingGroupMemberUnitModule.vue index 7fec265..1a4ec42 100644 --- a/src/views/projectManagement/modules/WorkingGroupMemberUnitModule.vue +++ b/src/views/projectManagement/modules/WorkingGroupMemberUnitModule.vue @@ -28,14 +28,14 @@ -