fix : 修复组织机构显示及部门副职不能选择bug

This commit is contained in:
2024-07-23 17:30:27 +08:00
parent 7ee43a9b4d
commit 342b64273c
6 changed files with 88 additions and 321 deletions

View File

@@ -1,10 +1,14 @@
<template>
<baseTitle title="公司详情"></baseTitle>
<fv-Form :schema="schema" @getInstance="(e)=>form = e"></fv-Form>
<UserPicker :multiple="false" ref="presidentNamePicker" @ok="editPresident"></UserPicker>
<UserPicker :multiple="false" ref="generalManagerNamePicker" @ok="editGeneralManager"></UserPicker>
</template>
<script setup>
import {getCompanyDetail} from "@/api/subsidiary";
<script setup lang="jsx">
import UserPicker from '@/views/workflow/process/common/UserPicker.vue';
import Ttsup from '@/views/system/department/components/ToolToShowUserPicker.vue'
import {getCompanyDetail,setCompanyLeader} from "@/api/subsidiary";
const props=defineProps({
value:{
type:String,
@@ -12,6 +16,12 @@ const props=defineProps({
}
})
const form = ref()
const presidentName = ref()
const presidentIds = ref()
const generalManagerName = ref()
const presidentNamePicker = ref()
const generalManagerNamePicker = ref()
const generalManagerIds = ref()
const schema = reactive([
{
label: '公司名称:',
@@ -21,6 +31,17 @@ const schema = reactive([
label: '公司编码:',
prop: 'companyCode'
},
{
label: '董事长:',
prop: 'presidentIds',
component: ()=><Ttsup modelValue={presidentName.value} onClick={()=>{presidentNamePicker.value.showUserPicker()} } />
},
{
label: '总经理:',
prop: 'generalManagerIds',
component: ()=><Ttsup modelValue={generalManagerName.value} onClick={()=>{generalManagerNamePicker.value.showUserPicker()} } />
},
{
label: '创建时间:',
prop: 'createTime'
@@ -35,10 +56,62 @@ const _value = computed({
emit('update:value', value)
}
})
const editPresident = (list) => {
const arr = list.map(item=>item.name)
presidentIds.value = list.map(item=>item.id)
presidentName.value = arr.join(',')
setDeptmentInfo({
companyId: _value.value,
presidentIds: presidentIds.value,
generalManagerIds: generalManagerIds.value
})
}
const editGeneralManager = (list) => {
const arr = list.map(item=>item.name)
generalManagerIds.value = list.map(item=>item.id)
generalManagerName.value = arr.join(',')
setDeptmentInfo({
companyId: _value.value,
presidentIds: presidentIds.value,
generalManagerIds: generalManagerIds.value
})
}
const setDeptmentInfo = async ({companyId = [], presidentIds = [], generalManagerIds = [] }) => {
const params = {
presidentIds,
generalManagerIds,
companyId,
}
const res = await setCompanyLeader(params)
// console.log(res.data);
}
const getInfo = async () => {
const { data } = await getCompanyDetail(_value.value)
form.value.setValues(data)
const params = {
companyName: data.companyName,
companyCode: data.companyCode,
createTime: data.createTime
}
presidentIds.value = data.presidentIds
generalManagerIds.value = data.generalManagerIds
params.presidentIds = formatIdsToNames(data.presidentIds, data.presidentInfo, 'userId', 'nickName')
presidentName.value = params.presidentIds
params.generalManagerIds = formatIdsToNames(data.generalManagerIds, data.generalManagerInfo, 'userId', 'nickName')
generalManagerName.value = params.generalManagerIds
form.value.setValues(params)
}
const formatIdsToNames = (ids, infoList, key, viewKey) => {
const resArr = []
if(!ids?.length) return
ids.forEach(item=>{
infoList.forEach(v=>{
item == v[key] && resArr.push(v[viewKey])
})
})
return resArr.join(',')
}
getInfo()

View File

@@ -3,9 +3,9 @@
<fv-Form :schema="companySchema" @getInstance="(e)=>companyForm = e"></fv-Form>
<baseTitle title="部门详情"></baseTitle>
<fv-Form :schema="schema" @getInstance="(e)=>form = e"></fv-Form>
<UserPicker ref="usrPickershipIds" @ok="editshipIds"></UserPicker>
<UserPicker ref="usrPickerHeadIds" @ok="editheadIds"></UserPicker>
<UserPicker ref="departmentalDeputyIds" @ok="editdeputyIds"></UserPicker>
<UserPicker :multiple="false" ref="usrPickershipIds" @ok="editshipIds"></UserPicker>
<UserPicker :multiple="false" ref="usrPickerHeadIds" @ok="editheadIds"></UserPicker>
<UserPicker :multiple="false" ref="usrPickerDeputyIds" @ok="editdeputyIds"></UserPicker>
</template>
<script setup lang="jsx">
@@ -65,7 +65,7 @@ const schema = reactive([
{
label: '部门副职用户:',
prop: 'departmentalDeputyIds',
component: ()=><Ttsup modelValue={departmentalDeputyNames.value} onClick={()=>{departmentalDeputyIds.value.showUserPicker()} } />
component: ()=><Ttsup modelValue={departmentalDeputyNames.value} onClick={()=>{usrPickerDeputyIds.value.showUserPicker()} } />
},
{
label: '创建时间:',