update 工作组批量新增成员单位

This commit is contained in:
danshihao
2024-03-06 21:53:27 +08:00
parent 22c384090b
commit d274778cb3
3 changed files with 130 additions and 7 deletions
+1 -1
View File
@@ -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)
@@ -47,6 +47,7 @@
<div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd" v-has="'workingGroupProject:add'">新增</a-button>
<a-button type="danger" icon="delete" @click="batchDel" v-has="'workingGroupProject:batchDel'">批量删除</a-button>
<a-button type="primary" icon="plus" @click="handleBatchAddMemberUnit" v-has="'workingGroupMember:batchAdd'">批量新增成员单位</a-button>
<!-- 进度条tooltip-->
<div class="tooltip">
@@ -122,6 +123,8 @@
<!-- /table表格区域-->
<working-group-project-module ref="modalForm" @ok="modalFormOk"></working-group-project-module>
</a-card>
<!-- 批量新增成员信息 -->
<working-group-member-unit-module ref="workingGroupMemberUnitModule" @ok="modalFormOk"/>
</div>
</template>
@@ -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属性!')
@@ -27,6 +27,31 @@
</a-form-item>
</a-col>
</a-row>
<!-- 批量添加时显示 -->
<template v-if="isBatchAdd && model.workingGroupIds && model.workingGroupIds.length > 0">
<a-row v-for="(_, index) in model.workingGroupIds" :key="index + ''">
<a-col :xl="21" :sm="20">
<a-form-item :label="`工作组${index + 1}`" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
<a-select
:placeholder="`请选择工作组项目${index + 1}`"
show-search
v-decorator="[`workingGroupIds[${index}]`, {rules: [{ required: index === 0, validator: index === 0 ? validateWorkingGroupRequired : validateWorkingGroup }],validateTrigger: 'change'}]"
:maxLength='50'
allowClear
:filter-option="filterOption"
>
<a-select-option v-for="item in workingGroupList" :key="item.id" :value="item.id">
{{ item.workingGroupProject }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :xl="3" :sm="4">
<a-button type="link" class="contact-btn" @click="handleAddWorkGroup(index)">添加</a-button>
<a-button type="link" class="contact-btn del-btn" @click="handleDelWorkGroup(index)">删除</a-button>
</a-col>
</a-row>
</template>
<a-row>
<a-col>
<a-form-item label="成员单位" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
@@ -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