diff --git a/src/components/project/ProjectManager.vue b/src/components/project/ProjectManager.vue index aaa314b0..c10e879e 100644 --- a/src/components/project/ProjectManager.vue +++ b/src/components/project/ProjectManager.vue @@ -28,10 +28,12 @@ export default { props: { value: { - type: Number, + type: String, + default: '' }, name: { - type: Number, + type: String, + default: '' }, disabled: { type: Boolean, @@ -55,9 +57,9 @@ export default { loading: false, init: false }); - const getMemberThrottle = throttle(getMember, 500) - watch(() => state.memberParam, getMemberThrottle) + watch(()=>state.memberParam.keyWord , throttle(getMember, 500)) + watch(()=>state.memberParam.pageNo , throttle(getPushMember, 500)) watch(props, init) onMounted(() => { @@ -71,15 +73,21 @@ export default { getMemberData() } + function getPushMember() { + state.loading = true + getMemberData() + } + function getMemberData() { + console.log('getMemberData') api1.getMemberInfo(state.memberParam).then((res) => { - const list = res.data.data.rows.filter(e => !props.value?.includes(e.id + '')).map(e => ({ + const list = res.data.data.rows.filter(e => !(props.value + '')?.includes(e.id + '')).map(e => ({ label: e.realName, value: e.id })); if (state.memberParam.pageNo === 1 && props.value) { - const arrManagerId = props.value.split(',') + const arrManagerId = (props.value + '').split(',') const arrManager = props.name.split(',') state.options = [...arrManager.map((e, i) => ({label: e, value: arrManagerId[i]})), ...list] } else state.options.push(...list) @@ -102,10 +110,11 @@ export default { function init() { console.log('init--', props) - if (props.value !== typeof state.managerArray === 'object' ? state.managerArray.join(',') : state.managerArray) { + console.log(Array.isArray(state.managerArray)) + if ((props.value + '') !== (Array.isArray(state.managerArray) ? state.managerArray.join(',') : (state.managerArray + ''))) { if (props.value) { const arrManager = props.name.split(',') - const arrManagerId = props.value.split(',') + const arrManagerId = (props.value + '').split(',') state.managerArray = props.mode === 'select' ? props.value : arrManagerId; state.options = arrManager.map((e, i) => ({label: e, value: arrManagerId[i]})) } else { @@ -124,7 +133,7 @@ export default { } function change(e, l) { - console.log('change') + console.log('change', l) if (Array.isArray(l)) { ctx.emit('update:value', l.map(t => t.value).join(',')) ctx.emit('update:name', l.map(t => t.label).join(','))