|
@@ -19,7 +19,7 @@
|
|
|
>
|
|
|
<a-row :gutter="24">
|
|
|
<a-col :span="6">
|
|
|
- <a-form-item label="求职者" :label-col="{ span: 8 }" name="name">
|
|
|
+ <a-form-item label="求职人员姓名" :label-col="{ span: 8 }" name="name">
|
|
|
<a-input v-model:value="searchParams.jobUserName" style="color: black;" disabled="true" placeholder=""/>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
@@ -30,11 +30,18 @@
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
<a-col :span="6">
|
|
|
- <a-form-item label="企业名称" :label-col="{ span: 8 }" name="companyName">
|
|
|
- <a-input v-model:value="searchParams.companyName" placeholder=""/>
|
|
|
+ <a-form-item label="招聘企业" :label-col="{ span: 8 }" name="companyName">
|
|
|
+<!-- <a-input v-model:value="searchParams.companyName" placeholder=""/>-->
|
|
|
+ <a-select ref="select" show-search optionFilterProp="label" allow-clear="true"
|
|
|
+ v-model:value="searchParams.companyName" >
|
|
|
+ <a-select-option v-for="item in companyList" :label="item.companyName" :value="item.companyName"
|
|
|
+ :key="item.companyID" @change="companyChange">
|
|
|
+ <span>{{ item.companyName }}</span>
|
|
|
+ </a-select-option>
|
|
|
+ </a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :span="4" style="text-align: left">
|
|
|
+ <a-col :span="6" style="text-align: left;">
|
|
|
<a-button type="primary" html-type="submit" @click="onSearch">查询</a-button>
|
|
|
<a-button
|
|
|
style="margin: 0 8px"
|
|
@@ -63,8 +70,25 @@
|
|
|
<!-- </a>-->
|
|
|
</a-col>
|
|
|
</a-row>
|
|
|
- <a-row :gutter="24" v-if="searchParams.type===0" >
|
|
|
- <a-col :span="16">
|
|
|
+ <a-row :gutter="24">
|
|
|
+ <a-col :span="6">
|
|
|
+ <a-form-item label="招聘岗位" :label-col="{ span: 8 }" name="inviteProfessionName">
|
|
|
+ <a-auto-complete
|
|
|
+ v-model:value="searchParams.inviteProfessionName"
|
|
|
+ :options="inviteProfessionList"
|
|
|
+ @search="selectInviteProfessionList"
|
|
|
+ @change="inviteProfessionChange"
|
|
|
+ :field-names="{
|
|
|
+ value:'professionName',
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <template #option="item">
|
|
|
+ <span v-html="formatStr(item.professionName)"></span>({{ item.parentProfessionName }})
|
|
|
+ </template>
|
|
|
+ </a-auto-complete>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12" v-if="searchParams.type===0">
|
|
|
<a-form-item label="推荐岗位筛选:" :label-col="{ span: 4 }" name="recommendPostWhere">
|
|
|
<!-- <div :style="{ borderBottom: '1px solid #E9E9E9' }">-->
|
|
|
<!-- <a-checkbox-->
|
|
@@ -78,6 +102,8 @@
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
|
+ <a-row :gutter="24" >
|
|
|
+ </a-row>
|
|
|
<a-row class="edit-operation">
|
|
|
<a-col :span="24" style="text-align: right">
|
|
|
<a-button type="primary" v-if="searchParams.type===0" html-type="submit" functioncode="T01030207"
|
|
@@ -107,11 +133,13 @@
|
|
|
<script lang="ts">
|
|
|
import {reactive, ref, computed, defineComponent, toRefs, watch} from 'vue';
|
|
|
import type {FormInstance, TableColumnsType, TableProps} from 'ant-design-vue';
|
|
|
-import {getRecommendCompanyPostList, addRecommend} from '@/api/jobUserManager/recommendMgt';
|
|
|
+import {getRecommendCompanyPostList, addRecommend,getProfessionLikeList, getCompanyProfessionLikeList} from '@/api/jobUserManager/recommendMgt';
|
|
|
import {getPaginationTotalTitle} from '@/utils/common';
|
|
|
import dayjs from 'dayjs';
|
|
|
-import {message} from "ant-design-vue";
|
|
|
+import {message, SelectProps} from "ant-design-vue";
|
|
|
import {getSysDictionaryList} from '@/api/system/dictionary';
|
|
|
+import {get} from "@/api/common";
|
|
|
+import {debounce} from "lodash-es";
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'RecommendCompanyPostList',
|
|
@@ -122,18 +150,36 @@ export default defineComponent({
|
|
|
const expand = ref(false);
|
|
|
const title = ref<string>();
|
|
|
const dataList = ref([]);
|
|
|
+ const companyList = ref<SelectProps['options']>();
|
|
|
const addRecommendList = ref([] as any);
|
|
|
const recommendPostWhereList = ref([] as any);
|
|
|
|
|
|
+ get('companyService/company/getList', {pageIndex: 1, pageSize: 9999}).then(result => {
|
|
|
+ companyList.value = result.list;
|
|
|
+ });
|
|
|
+
|
|
|
+ function companyChange(value: any) {
|
|
|
+ getCompanyProfessionLikeList({
|
|
|
+ pageIndex: 1,
|
|
|
+ pageSize: 30,
|
|
|
+ professionName:"",
|
|
|
+ companyName:value
|
|
|
+ }).then(data => {
|
|
|
+ inviteProfessionList.value = data.list;
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
const searchParams = reactive({
|
|
|
pageIndex: 1,
|
|
|
pageSize: 10,
|
|
|
jobUserName: null,
|
|
|
professionName: null,
|
|
|
+ inviteProfessionName: null,
|
|
|
type: 0,
|
|
|
jobHuntID: '',
|
|
|
companyName: null,
|
|
|
professionID: '',
|
|
|
+ inviteProfessionID: '',
|
|
|
parentProfessionID: '',
|
|
|
cultureRank: null,
|
|
|
workYear: null,
|
|
@@ -208,6 +254,51 @@ export default defineComponent({
|
|
|
loadData();
|
|
|
};
|
|
|
|
|
|
+ // 名称搜索关键字高亮
|
|
|
+ const formatStr = (str: any) => {
|
|
|
+ if (!str) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ return str.replace(searchParams.inviteProfessionName, '<span style="color: coral">' + searchParams.inviteProfessionName + '</span>');
|
|
|
+ }
|
|
|
+ const inviteProfessionList = ref<Array<any>>([]);
|
|
|
+ // 查询岗位
|
|
|
+ const selectInviteProfessionList = debounce((professionName: string) => {
|
|
|
+ if (professionName) {
|
|
|
+ if(searchParams.companyName){
|
|
|
+ getCompanyProfessionLikeList({
|
|
|
+ pageIndex: 1,
|
|
|
+ pageSize: 30,
|
|
|
+ professionName:professionName,
|
|
|
+ companyName:searchParams.companyName
|
|
|
+ }).then(data => {
|
|
|
+ inviteProfessionList.value = data.list;
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ getProfessionLikeList({
|
|
|
+ pageIndex: 1,
|
|
|
+ pageSize: 30,
|
|
|
+ professionName
|
|
|
+ }).then(data => {
|
|
|
+ inviteProfessionList.value = data.list;
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, 200)
|
|
|
+
|
|
|
+ // 岗位名称变更
|
|
|
+ function inviteProfessionChange(value: any) {
|
|
|
+ searchParams.inviteProfessionName = value;
|
|
|
+ console.log("当前搜索的招聘岗位名称",value);
|
|
|
+ const profession = inviteProfessionList.value.find(prof => prof.professionName === value);
|
|
|
+ if (profession) {
|
|
|
+ searchParams.inviteProfessionID = profession.professionID;
|
|
|
+ onSearch();
|
|
|
+ } else {
|
|
|
+ searchParams.inviteProfessionID = "";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
const onSearch = () => {
|
|
|
searchParams.professionID = state.checkRecommendPostWhereList.findIndex(x => x == 1) >= 0 ? state.professionID : "";
|
|
|
searchParams.cultureRank = state.checkRecommendPostWhereList.findIndex(x => x == 2) >= 0 ? state.cultureRank : null;
|
|
@@ -363,9 +454,14 @@ export default defineComponent({
|
|
|
columns,
|
|
|
pagination,
|
|
|
dataList,
|
|
|
+ companyList,
|
|
|
+ inviteProfessionList,
|
|
|
recommendPostWhereList,
|
|
|
show,
|
|
|
onSearch,
|
|
|
+ formatStr,
|
|
|
+ companyChange,
|
|
|
+ inviteProfessionChange,
|
|
|
showSalary,
|
|
|
onCheckAllChange,
|
|
|
onRecommend,
|
|
@@ -374,6 +470,7 @@ export default defineComponent({
|
|
|
handleTableChange,
|
|
|
loadData,
|
|
|
getRecommendPostWhereList,
|
|
|
+ selectInviteProfessionList,
|
|
|
handleOk,
|
|
|
handleCancel
|
|
|
};
|