浏览代码

企业名称、职位名称、学校名称传值优化,防抖回显

lifanagju_citu 9 月之前
父节点
当前提交
f95153eb44

+ 8 - 2
src/views/recruit/personal/remuse/components/educationExp.vue

@@ -63,10 +63,13 @@ const CtFormRef = ref()
 const dictItemsObj = reactive({})
 
 // 学校下拉列表
+const schoolNameInput = ref('')
 const getSchoolListData = async (name) => {
   const item = formItems.value.options.find(e => e.key === 'schoolId')
   if (!item) return
-  item[item.itemTextName] = name
+  if (item.items?.length && (schoolNameInput.value === name)) return // 防抖
+  item[item.itemTextName] = schoolNameInput.value = name
+
   if (name === null || name === '') { item.items = [] }
   else {
     const data = await schoolSearchByName({ name })
@@ -79,13 +82,16 @@ const debouncedCallbackSchool = debounce(newValue => {
 }, 500)
 
 // 专业下拉列表
+const majorNameInput = ref('')
 const getMajorListData = async (name) => {
   if (name === '') { // 此接口不支持传空值
     item.items = []
     return
   }
   const item = formItems.value.options.find(e => e.key === 'majorId')
-  item[item.itemTextName] = name
+  if (item.items?.length && (majorNameInput.value === name)) return // 防抖
+  item[item.itemTextName] = majorNameInput.value = name
+  
   if (name === null || name === '') { item.items = [] }
   else {
     const data = await schoolMajorByName({ name })

+ 3 - 2
src/views/recruit/personal/remuse/components/workExperience.vue

@@ -80,10 +80,12 @@ const dictItemsObj = reactive({})
 dictItemsObj.educationSystemType = [{ label: '全日制', value: '0' }, { label: '非全日制', value: '1' }]
 
 // 企业名称下拉列表
+const enterpriseNameInput = ref('')
 const getEnterpriseData = async (name) => {
   const item = formItems.value.options.find(e => e.key === 'enterpriseId')
   if (!item) return
-  item[item.itemTextName] = name
+  if (item.items?.length && (enterpriseNameInput.value === name)) return // 防抖
+  item[item.itemTextName] = enterpriseNameInput.value = name
   if (name === null || name === '') { item.items = [] }
   else {
     const data = await enterpriseSearchByName({ name })
@@ -94,7 +96,6 @@ const getEnterpriseData = async (name) => {
 const positionSearch = (name) => {
   const item = formItems.value.options.find(e => e.key === 'positionId')
   if (!item) return
-  // if (name && name !==0 && !edit) item.value = null
   item[item.itemTextName] = name
 }