Merge pull request 'fix : 修复人员取消功能' (#718) from dd into master
Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/718
This commit is contained in:
@@ -42,7 +42,7 @@
|
||||
{{ item.name }}
|
||||
</div>
|
||||
<user-picker :multiple="false" ref="projectChargePersonUserPicker" title="请选择项目负责人"
|
||||
v-model:value="projectChargePersonUserList" @ok="projectChargePersonUserPickerOk"/>
|
||||
v-model:value="projectChargePersonUserList" @ok="projectChargePersonUserPickerOk" @cancelOrClear="projectChargePersonUserPickerCancel"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6" v-if="title==='apply'">
|
||||
@@ -55,23 +55,21 @@
|
||||
{{ item.name }}{{index != getProjectPerson(projectPersonUserList)?.length - 1 ? ',' : ''}}
|
||||
</div>
|
||||
<user-picker :multiple="true" ref="projectPersonUserPicker" title="请选择项目成员"
|
||||
v-model:value="projectPersonUserList" @ok="projectPersonUserPickerOk"/>
|
||||
v-model:value="projectPersonUserList" @ok="projectPersonUserPickerOk" @cancelOrClear="projectPersonUserPickerCancel"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6" v-if="title==='apply'||title==='check'">
|
||||
<el-form-item label="部门分管领导" :label-width="title==='check'?110:115"
|
||||
>
|
||||
<el-form-item label="部门分管领导" :label-width="title==='check'?110:115">
|
||||
<el-button color="#DED0B2" style="margin-right: 10px" @click="handleShowOptionalChargeLeadershipPicker">
|
||||
{{
|
||||
optionalChargeLeadershipList?.length !== 0 ? '更改' : getOptionalChargeLeadershipList(optionalChargeLeadershipList) ? '更改' : '请选择'
|
||||
}}
|
||||
</el-button>
|
||||
<div v-for="(item,index) in getOptionalChargeLeadershipList(optionalChargeLeadershipList)" :key="item.id"
|
||||
>
|
||||
{{ item.name }}{{index != getProjectPerson(projectPersonUserList)?.length - 1 ? ',' : ''}}
|
||||
<div v-for="(item,index) in getOptionalChargeLeadershipList(optionalChargeLeadershipList)" :key="item.id">
|
||||
{{ item.name }}{{index != getOptionalChargeLeadershipList(optionalChargeLeadershipList)?.length - 1 ? ',' : ''}}
|
||||
</div>
|
||||
<user-picker :multiple="true" ref="optionalChargeLeadershipPickerRef" title="请选择部门分管领导"
|
||||
v-model:value="optionalChargeLeadershipList" @ok="optionalChargeLeaderPickerOk"/>
|
||||
v-model:value="optionalChargeLeadershipList" @ok="optionalChargeLeaderPickerOk" @cancelOrClear="optionalChargeLeaderPickerCancel"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" v-if="preProcessShow === 'EDIT'">
|
||||
@@ -342,7 +340,14 @@ const handleShowOptionalChargeLeadershipPicker = () => {
|
||||
|
||||
const optionalChargeLeaderPickerOk = (userList) => {
|
||||
optionalChargeLeadershipList.value = userList
|
||||
localStorage.setItem('optionalChargeLeadershipList', JSON.stringify(optionalChargeLeadershipList.value))
|
||||
if(userList?.length>0){
|
||||
localStorage.setItem('optionalChargeLeadershipList', JSON.stringify(optionalChargeLeadershipList.value))
|
||||
}else {
|
||||
localStorage.removeItem('optionalChargeLeadershipList')
|
||||
}
|
||||
}
|
||||
const optionalChargeLeaderPickerCancel = (userList) => {
|
||||
optionalChargeLeadershipList.value = userList
|
||||
}
|
||||
|
||||
const clickToPreview = (row) => {
|
||||
@@ -471,19 +476,29 @@ const handleShowProjectChargePersonTable = () => {
|
||||
}
|
||||
const projectChargePersonUserPickerOk = (userList) => {
|
||||
projectChargePersonUserList.value = userList
|
||||
localStorage.setItem('projectChargePersonUserList', JSON.stringify(projectChargePersonUserList.value))
|
||||
if(userList?.length>0){
|
||||
localStorage.setItem('projectChargePersonUserList', JSON.stringify(projectChargePersonUserList.value))
|
||||
}else {
|
||||
localStorage.removeItem('projectPersonUserList')
|
||||
}
|
||||
}
|
||||
const handleShowProjectPersonTable = () => {
|
||||
projectPersonUserPicker.value.showUserPicker()
|
||||
}
|
||||
const projectChargePersonUserPickerCancel=(userList)=>{
|
||||
projectChargePersonUserList.value = userList
|
||||
}
|
||||
const projectPersonUserPickerCancel=(userList)=>{
|
||||
projectPersonUserList.value = userList
|
||||
}
|
||||
|
||||
const projectPersonUserPickerOk = (userList) => {
|
||||
projectPersonUserList.value = userList
|
||||
localStorage.setItem('projectPersonUserList', JSON.stringify(userList))
|
||||
// let userIds = []
|
||||
// for (const user of userList) {
|
||||
// userIds.push(user.id)
|
||||
// }
|
||||
if(userList?.length>0){
|
||||
localStorage.setItem('projectPersonUserList', JSON.stringify(userList))
|
||||
}else {
|
||||
localStorage.removeItem('projectPersonUserList')
|
||||
}
|
||||
}
|
||||
const getPreProcessList = () => {
|
||||
loading.value = true
|
||||
@@ -604,6 +619,7 @@ const getFileParam = (item) => {
|
||||
}
|
||||
}
|
||||
const handleSubmit = async () => {
|
||||
console.log(' projectPersonUserList.value', projectPersonUserList.value)
|
||||
let files = []
|
||||
if (props.mode === 'resubmit') {
|
||||
attachment.value.allFileList.forEach(item => {
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
</el-row>
|
||||
</el-form>
|
||||
<user-picker :multiple="false" ref="userPicker" title="请选择研发人员" v-model:value="userList"
|
||||
@ok="selectedResearchPersonnel"
|
||||
@ok="selectedResearchPersonnel" @cancelOrClear="researchPersonnelPickerCancel"
|
||||
:setNullToSelectList="true" :isResearch="true"/>
|
||||
|
||||
<div style="width:100%;text-align: center;padding: 10px">
|
||||
@@ -232,12 +232,12 @@ const selectProject=(row,index)=>{
|
||||
//先选择人员, 再选择项目: 再添加一行,重复操作
|
||||
const projectIdArray = formData.value.tableData.map(item => item.projectId)
|
||||
const researchPersonnelIdArray = formData.value.tableData.map(item => item.researchPersonnelId)
|
||||
console.log('projectIdArray',projectIdArray)
|
||||
console.log('researchPersonnelIdArray',researchPersonnelIdArray)
|
||||
// console.log('projectIdArray',projectIdArray)
|
||||
// console.log('researchPersonnelIdArray',researchPersonnelIdArray)
|
||||
const projectNumObj = getSelectProjectAndResearchPersonnelNum(projectIdArray)
|
||||
const researchPersonnelNumObj = getSelectProjectAndResearchPersonnelNum(researchPersonnelIdArray)
|
||||
let repeatProjectName=getProjectName(row.projectId)
|
||||
console.log('currentRow.value',currentRow.value)
|
||||
// console.log('currentRow.value',currentRow.value)
|
||||
for (let researchPersonnelIdKey in researchPersonnelNumObj) {//先判断人员是否重复
|
||||
if(currentRow.value.projectId){
|
||||
if(researchPersonnelNumObj[researchPersonnelIdKey]>1){
|
||||
@@ -263,21 +263,52 @@ const selectProject=(row,index)=>{
|
||||
// }
|
||||
// }
|
||||
}
|
||||
const selectedResearchPersonnel = (select) => {
|
||||
if (!select || select.length === 0) {
|
||||
return
|
||||
const researchPersonnelPickerCancel = (select) => {
|
||||
console.log('select',select)
|
||||
if(select.length>0){
|
||||
formData.value.tableData?.forEach((item, index) => {
|
||||
if (index === currentIndex.value) {
|
||||
item.researchPersonnelId = select[0].id
|
||||
item.researchPersonnel = select[0].name
|
||||
item.companyName = select[0].companyName
|
||||
item.accountType = select[0].accountType
|
||||
}
|
||||
})
|
||||
}else{
|
||||
formData.value.tableData?.forEach((item, index) => {
|
||||
if (index === currentIndex.value) {
|
||||
item.researchPersonnelId = ''
|
||||
item.researchPersonnel = ''
|
||||
item.companyName = ''
|
||||
item.accountType = ''
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const selectedResearchPersonnel = (select) => {
|
||||
if(select.length>0){
|
||||
formData.value.tableData?.forEach((item, index) => {
|
||||
if (index === currentIndex.value) {
|
||||
item.researchPersonnelId = select[0].id
|
||||
item.researchPersonnel = select[0].name
|
||||
item.companyName = select[0].companyName
|
||||
item.accountType = select[0].accountType
|
||||
}
|
||||
})
|
||||
}else{
|
||||
formData.value.tableData?.forEach((item, index) => {
|
||||
if (index === currentIndex.value) {
|
||||
item.researchPersonnelId = ''
|
||||
item.researchPersonnel = ''
|
||||
item.companyName = ''
|
||||
item.accountType = ''
|
||||
}
|
||||
})
|
||||
}
|
||||
formData.value.tableData.forEach((item, index) => {
|
||||
if (index === currentIndex.value) {
|
||||
item.researchPersonnelId = select[0].id
|
||||
item.researchPersonnel = select[0].name
|
||||
item.companyName = select[0].companyName
|
||||
item.accountType = select[0].accountType
|
||||
}
|
||||
})
|
||||
//以下是为" 同一项目下,同一人不能分摊多次 "
|
||||
const projectIdArray = formData.value.tableData.map(item => item.projectId)
|
||||
const researchPersonnelIdArray = formData.value.tableData.map(item => item.researchPersonnelId)
|
||||
const projectIdArray = formData.value.tableData?.map(item => item.projectId)
|
||||
const researchPersonnelIdArray = formData.value.tableData?.map(item => item.researchPersonnelId)
|
||||
const projectNumObj = getSelectProjectAndResearchPersonnelNum(projectIdArray)
|
||||
const researchPersonnelNumObj = getSelectProjectAndResearchPersonnelNum(researchPersonnelIdArray)
|
||||
let repeatProjectName=''
|
||||
|
||||
@@ -173,11 +173,11 @@
|
||||
<el-button color="#DED0B2" style="margin-right: 10px" @click="handleShowOptionalChargeLeadershipPicker">
|
||||
{{ optionalChargeLeadershipList.length !== 0 ? '更改' : '请选择' }}
|
||||
</el-button>
|
||||
<div v-for="item in optionalChargeLeadershipList" :key="item.id" style="margin-right: 5px">
|
||||
{{ item.name }}
|
||||
<div v-for="(item,index) in optionalChargeLeadershipList" :key="item.id" style="margin-right: 5px">
|
||||
{{ item.name }}{{index != optionalChargeLeadershipList?.length - 1 ? ',' : ''}}
|
||||
</div>
|
||||
<user-picker :multiple="true" ref="optionalChargeLeadershipPickerRef" title="请选择分管领导"
|
||||
v-model:value="optionalChargeLeadershipList" @ok="optionalChargeLeaderPickerOk"/>
|
||||
<user-picker :multiple="true" ref="optionalChargeLeadershipPickerRef" title="请选择分管领导" @cancelOrClear="optionalChargeLeaderPickerOkOrCancel"
|
||||
v-model:value="optionalChargeLeadershipList" @ok="optionalChargeLeaderPickerOkOrCancel"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -365,7 +365,7 @@ const handleShowOptionalChargeLeadershipPicker = () => {
|
||||
optionalChargeLeadershipPickerRef.value.showUserPicker()
|
||||
}
|
||||
|
||||
const optionalChargeLeaderPickerOk = (userList) => {
|
||||
const optionalChargeLeaderPickerOkOrCancel = (userList) => {
|
||||
optionalChargeLeadershipList.value = userList
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<Ttsup :modelValue="chooseUserInfo()" @clickCopyUser="chooseUser"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<user-picker :multiple="true" ref="userPicker" title="请选择抄送人员" v-model:value="userList" @ok="selected"/>
|
||||
<user-picker :multiple="true" ref="userPicker" title="请选择抄送人员" v-model:value="userList" @ok="ccPersonPickerOkOrCancel" @cancelOrClear="ccPersonPickerOkOrCancel"/>
|
||||
<AttachmentUpload ref="attachment" label="阶段变更附件" :showTable="showTable" v-model:otherFileList="otherFileList"
|
||||
@getAttachment="getAttachment" v-model:singleList="singleList" :showSingleTable="showSingleTable"
|
||||
@getOtherFile="getOtherFile" :showFileList="true" :formData="formData" tag="阶段变更"
|
||||
@@ -381,7 +381,8 @@ const chooseUserInfo = () => {
|
||||
return null
|
||||
}
|
||||
}
|
||||
const selected = (select) => {
|
||||
const ccPersonPickerOkOrCancel = (select) => {
|
||||
console.log('select',select)
|
||||
userList.value = select
|
||||
}
|
||||
const handleSubmit = async () => {
|
||||
|
||||
@@ -69,7 +69,6 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<user-picker :multiple="false" ref="userPicker" title="请选择项目负责人" @ok="selected" v-model:value="userList"/>
|
||||
<div class="oper-page-btn">
|
||||
<el-button color="#DED0B2" @click="handleSubmit">提交</el-button>
|
||||
<el-button @click="handleBack">返回</el-button>
|
||||
@@ -78,12 +77,9 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="jsx">
|
||||
import {ElMessage, ElNotification} from "element-plus";
|
||||
import {ElNotification} from "element-plus";
|
||||
import {updateLedger} from "@/api/project-manage";
|
||||
import {getBaseInfoApi} from "@/components/steps/api";
|
||||
import {ref} from "vue";
|
||||
import UserPicker from "@/views/workflow/process/common/UserPicker.vue";
|
||||
|
||||
import {useTagsView} from '@/stores/tagsview.js'
|
||||
import {searchUpdateLedgerData} from "@/api/project-manage";
|
||||
|
||||
@@ -109,18 +105,6 @@ const userList = ref([])
|
||||
const showPersonnelPicker = () => {
|
||||
userPicker.value.showUserPicker()
|
||||
}
|
||||
const selected = (select) => {
|
||||
if (!select || select.length === 0) {
|
||||
return
|
||||
}
|
||||
for (const selectElement of select) {
|
||||
tableForm.value.projectChargePerson = selectElement.id
|
||||
tableForm.value.projectChargePersonName = selectElement.name
|
||||
tableForm.value.companyName = selectElement.companyName
|
||||
tableForm.value.accountType = selectElement.accountType
|
||||
}
|
||||
userList.value = select
|
||||
}
|
||||
const disabledDate = (time) => {
|
||||
return time.getTime() < new Date(tableForm.value.startTime).getTime();
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<div class="tree">
|
||||
<el-tree :data="dataList" ref="tree" :props="defaultProps" empty-text="" node-key="value"
|
||||
:default-expanded-keys="expandedKeys" lazy :load="loadNode" accordion
|
||||
@node-click="handleClick">
|
||||
@node-click="handleClickTreeNode">
|
||||
<template #default="{ node, data }">
|
||||
<div class="tree-node">
|
||||
<div v-if="data.type === 0" style="display: flex;align-items: center;padding: 3px 0">
|
||||
@@ -54,7 +54,7 @@
|
||||
<UserFilled/>
|
||||
</el-icon>
|
||||
{{ selectItem.name }}-{{ selectItem.companyName }}
|
||||
<el-icon @click="noSelected(selectItem)" size="20" style="margin-left: 10px;cursor: pointer;">
|
||||
<el-icon @click="removeSingleSelected(selectItem)" size="20" style="margin-left: 10px;cursor: pointer;">
|
||||
<CircleClose/>
|
||||
</el-icon>
|
||||
</div>
|
||||
@@ -62,7 +62,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<el-button size="mini" @click="visible = false">取 消</el-button>
|
||||
<el-button size="mini" @click="cancelUserPicker">取 消</el-button>
|
||||
<el-button size="mini" color="#DED0B2" @click="selectConfirm">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
@@ -113,6 +113,8 @@ const title = ref("请选择");
|
||||
const selectList = ref([]);
|
||||
const filterText = ref("");
|
||||
const dataList = ref([]);
|
||||
const isRemoveSingleSelected = ref(false);
|
||||
const originallySelectedList = ref([]);
|
||||
const tree = ref([]);
|
||||
const isSearch = ref(false);
|
||||
const expandedKeys = ref([]);
|
||||
@@ -171,7 +173,7 @@ async function loadNode(node, resolve) {
|
||||
if (data.id) {
|
||||
params = {
|
||||
chooseId: data.id,
|
||||
isResearch: props.isResearch
|
||||
isResearch: props.isResearch
|
||||
}
|
||||
} else {
|
||||
params = {
|
||||
@@ -190,7 +192,7 @@ async function loadNode(node, resolve) {
|
||||
}
|
||||
|
||||
|
||||
const handleClick = (item, data) => {
|
||||
const handleClickTreeNode = (item, data) => {
|
||||
selectItem = item;
|
||||
if (isSearch.value && item.type !== 0) {
|
||||
filterText.value = ""
|
||||
@@ -224,24 +226,25 @@ const handleClick = (item, data) => {
|
||||
selectList.value = [item];
|
||||
}
|
||||
}
|
||||
localStorage.setItem('originallySelectedList', JSON.stringify(selectList.value))
|
||||
};
|
||||
|
||||
const noSelected = (selectItem) => {
|
||||
const removeSingleSelected = (selectItem) => {
|
||||
//右侧的x
|
||||
for (let i = 0; i < selectList.value.length; i++) {
|
||||
if(selectItem.value){
|
||||
for (let i = 0; i < selectList.value?.length; i++) {
|
||||
if (selectItem.value) {
|
||||
if (selectList.value[i].value === selectItem.value) {
|
||||
selectList.value.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
if (selectList.value[i].id === selectItem.id) {
|
||||
selectList.value.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
isRemoveSingleSelected.value = true
|
||||
selectItem.selected = false;
|
||||
};
|
||||
const clearSelected = () => {
|
||||
@@ -251,9 +254,23 @@ const clearSelected = () => {
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
isRemoveSingleSelected.value = true
|
||||
selectList.value = [];
|
||||
emit("cancelOrClear", selectList.value);
|
||||
});
|
||||
};
|
||||
const cancelUserPicker = () => {
|
||||
if (isRemoveSingleSelected.value&&localStorage.getItem('originallySelectedList')) {
|
||||
selectList.value = JSON.parse(localStorage.getItem('originallySelectedList'))
|
||||
}else{
|
||||
selectList.value=[]
|
||||
}
|
||||
emit("cancelOrClear", selectList.value);
|
||||
visible.value = false;
|
||||
nextTick(()=>{
|
||||
isRemoveSingleSelected.value=false
|
||||
})
|
||||
}
|
||||
const selectConfirm = () => {
|
||||
//确定按钮
|
||||
if (props.checkMatrix) {
|
||||
|
||||
Reference in New Issue
Block a user