Procházet zdrojové kódy

fix: PC岗位录入时,不存在的岗位名称可输入添加

zhangying před 11 měsíci
rodič
revize
08d1156e6a

+ 12 - 0
vue/src/api/jobUserManager/recommendMgt/index.ts

@@ -67,3 +67,15 @@ export function getRecommendJobList(params: any) {
   );
 }
 
+export function getProfessionLikeList(params: any) {
+  return request<any>(
+    {
+      url: "jobusermgr/recommendmgt/getProfessionLikeList",
+      method: 'get',
+      params: params,
+    },
+    {
+      isNew: true,
+    },
+  );
+}

+ 1 - 1
vue/src/views/companyService/company/edit.vue

@@ -724,7 +724,7 @@ export default defineComponent(
             }
           })
         }
-      }, 750)
+      }, 200)
 
       function workSituationChange() {
         if (formState.dataModel.workSituation) {

+ 52 - 19
vue/src/views/companyService/post/edit.vue

@@ -18,9 +18,22 @@
         <a-col flex="530px">
           <a-form-item label="岗位名称" :label-col="{ span: 5 }"
                        name="professionName" :rules="[{ required: true, message: '请选择岗位名称!' }]">
-            <a-cascader :load-data="loadLevelProfessionList" v-model:value="dataModel.professionName"
-                        :options="firstProfessionList" change-on-select @change="professionChange">
-            </a-cascader>
+            <a-auto-complete
+              v-model:value="dataModel.professionName"
+              :options="professionList"
+              placeholder="请选择岗位名称"
+              @search="selectProfessionList"
+              @change="professionChange"
+              :field-names="{
+                            value:'professionName',
+                          }"
+            >
+              <template #option="item">
+                <span>
+                  {{ item.professionName }}({{ item.parentProfessionName }})
+                </span>
+              </template>
+            </a-auto-complete>
           </a-form-item>
         </a-col>
       </a-row>
@@ -289,6 +302,8 @@ import {getInfo} from "@/api/account";
 import {getCompanyById} from "@/api/companyService/company";
 import SelectLabel from "@/views/baseSettings/label/selectLabel.vue";
 import dayjs from "dayjs";
+import {getProfessionLikeList} from "@/api/jobUserManager/recommendMgt";
+import {debounce} from "lodash-es";
 
 interface postModel {
   dataModel: any;
@@ -316,6 +331,7 @@ export default defineComponent(
       const firstProfessionList = ref<CascaderProps['options']>([]);
       const firstWorkCategoryList = ref<CascaderProps['options']>([]);
       const refSelectModel = ref();
+      const professionList = ref<Array<any>>([]);
 
       const onJobFindDateChange = (dateString: any) => {
         postCompany.dataModel.jobFindDate = dateString;
@@ -428,15 +444,6 @@ export default defineComponent(
         console.log("dsd1",postCompany.dataModel);
       });
 
-      watch(() => postCompany.dataModel.professionName, (selectedValues) => {
-        //console.log("dd",selectedValues);
-        if (selectedValues && selectedValues.length == 3) {
-          postCompany.dataModel.professionID = selectedValues[2];
-          postCompany.dataModel.hasProfession = true;
-        }
-        console.log("dsd2",postCompany.dataModel);
-      });
-
       get('system/dictionary/getDictionaryItemByCodeList', {code: 'CultureLevel'}).then(result => {
         cultureLevelList.value = result;
       });
@@ -488,7 +495,6 @@ export default defineComponent(
         }
         console.log("当前岗位信息",postCompany.dataModel);
         if (inputDataValidate()) {
-          postCompany.dataModel.professionName = null;
           postCompany.dataModel.workCategoryName = null;
           savePost(postCompany.dataModel).then((result) => {
             if (result) {
@@ -537,11 +543,11 @@ export default defineComponent(
       }
 
       // 岗位名称选择变更事件
-      function professionChange(value: any, selectedOptions: any) {
-        if (value.length >= 3) {
-          postCompany.dataModel.postName = selectedOptions[2].label;
-        }
-      }
+      // function professionChange(value: any, selectedOptions: any) {
+      //   if (value.length >= 3) {
+      //     postCompany.dataModel.postName = selectedOptions[2].label;
+      //   }
+      // }
 
       // 企业名称选择变更事件
       function companyChange(value: any) {
@@ -586,6 +592,31 @@ export default defineComponent(
         }
       }
 
+      // 查询岗位
+      const selectProfessionList = debounce((professionName: string) => {
+        if (professionName) {
+          getProfessionLikeList({
+            pageIndex: 1,
+            pageSize: 30,
+            professionName,
+          }).then(data => {
+            professionList.value = data.list;
+          })
+        }
+      }, 200)
+
+      // 岗位名称变更
+      function professionChange(value: any) {
+        console.log(value)
+        postCompany.dataModel.professionName = value
+        const profession = professionList.value.find(prof => prof.professionName === value);
+        if (profession) {
+          postCompany.dataModel.professionID = profession.professionID;
+        } else {
+          postCompany.dataModel.professionID = "";
+        }
+      }
+
       return {
         ...toRefs(postCompany),
         onJobFindDateChange,
@@ -614,7 +645,9 @@ export default defineComponent(
         trailSalaryChange,
         isTrailChange,
         trailMonthsChange,
-        recruitCountChange
+        recruitCountChange,
+        professionList,
+        selectProfessionList,
       }
     },
     created() {