diff --git a/src/components/project/ProjectManagerNew.vue b/src/components/project/ProjectManagerNew.vue index f3076888..9b802ec8 100644 --- a/src/components/project/ProjectManagerNew.vue +++ b/src/components/project/ProjectManagerNew.vue @@ -9,7 +9,7 @@ :placeholder="placeholder" :filterOption="false" style="width: 100%" - :options="options" + :options="isOpen?options:selectOptions" allowClear showSearch :mode="mode" @@ -39,13 +39,17 @@ const props = defineProps({ default: '' }, disabled: Boolean, - placeholder: String, + placeholder: { + type: String, + default: "请输入搜索关键字", + }, mode: String }) - const options = ref([]) +const selectOptions = ref([]) + const managerArray = computed(() => props.mode === 'select' ? props.value : (props.value ? props.value.split(',') : [])) const emit = defineEmits({}) @@ -61,10 +65,10 @@ watch(() => memberParam.value.pageNo, throttle(getPageMember, 500)) watch(props, init) function init() { - props.value && (options.value = props.value.split(',').map((e, i) => ({ - value: e, - label: props.name.split(',')[i] - }))) + //第一次进来 编辑赋值 + if (props.value && (props.value + '') !== selectOptions.value.map(e => e.value).join(',')) { + selectOptions.value = (props.value + '').split(',').map((e, i) => ({label: props.name.split(',')[i], value: e})) + } } onMounted(() => { @@ -94,7 +98,8 @@ function getMemberData() { } const list = res.data.data.rows.filter(e => !(props.value + '').includes(e.id)).map(e => ({ label: e.realName, - value: e.id + value: e.id, + deptId: e.departId })); memberParam.value.pageNo === 1 && props.value ? (options.value = list) : options.value.push(...list) loading.value = false @@ -117,16 +122,10 @@ const searchMember = (keyWord) => { }; function change(e, l) { - console.log('change', l) + selectOptions.value = l isOpen.value = false + emit('onChange', e, l, selectOptions.value.find(e => e.deptId)?.deptId) if (Array.isArray(l)) { - // const selectIds = l.filter(t => t.value).map(t => t.value).join(',') - // const arr = props.value ? props.value.split(',').filter(e => !selectIds.includes(e)).map((e, i) => ({ - // value: e, - // name: props.name.split(',')[i] - // })) : [] - // l.push(...arr) - // l=l.filter(t => t.label) emit('update:name', l.map(t => t.label).join(',')) emit('update:value', l.map(t => t.value).join(',')) } else { diff --git a/src/views/projectcenter/ProjectAdd.vue b/src/views/projectcenter/ProjectAdd.vue index e788de34..664d9909 100644 --- a/src/views/projectcenter/ProjectAdd.vue +++ b/src/views/projectcenter/ProjectAdd.vue @@ -3,13 +3,13 @@