|
@@ -52,8 +52,8 @@
|
|
|
searchParams.companyName = null;
|
|
|
searchParams.inviteProfessionName = null;
|
|
|
searchParams.parentProfessionID= '';
|
|
|
- searchParams.cultureRank= null;
|
|
|
- searchParams.workYear= null;
|
|
|
+ searchParams.cultureRank = '';
|
|
|
+ searchParams.workYear = '';
|
|
|
searchParams.minSalary= null;
|
|
|
searchParams.maxSalary= null;
|
|
|
loadData();
|
|
@@ -71,7 +71,32 @@
|
|
|
<!-- </a>-->
|
|
|
</a-col>
|
|
|
</a-row>
|
|
|
+
|
|
|
<a-row :gutter="24">
|
|
|
+ <a-col :span="6">
|
|
|
+ <a-form-item label="要求学历" :label-col="{ span: 8 }" name="cultureRank">
|
|
|
+ <a-select
|
|
|
+ ref="select" :allow-clear="true"
|
|
|
+ v-model:value="searchParams.cultureRank"
|
|
|
+ :options="cultureLevelList"
|
|
|
+ :field-names="{ label: 'name', value: 'value' }"
|
|
|
+ @change="onSearch"
|
|
|
+ >
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="6">
|
|
|
+ <a-form-item label="工作年限" :label-col="{ span: 8 }" name="workYear">
|
|
|
+ <a-select
|
|
|
+ ref="select" :allow-clear="true"
|
|
|
+ v-model:value="searchParams.workYear"
|
|
|
+ :options="workYearTypeList"
|
|
|
+ :field-names="{ label: 'name', value: 'value' }"
|
|
|
+ @change="onSearch"
|
|
|
+ >
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
<a-col :span="6">
|
|
|
<a-form-item label="招聘岗位" :label-col="{ span: 8 }" name="inviteProfessionName">
|
|
|
<a-auto-complete
|
|
@@ -89,21 +114,53 @@
|
|
|
</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-->
|
|
|
- <!-- v-model:checked="checkAll"-->
|
|
|
- <!-- :indeterminate="indeterminate"-->
|
|
|
- <!-- @change="onCheckAllChange">-->
|
|
|
- <!-- 全选-->
|
|
|
- <!-- </a-checkbox>-->
|
|
|
- <!-- </div>-->
|
|
|
+ <a-col :span="6" v-if="searchParams.type===0">
|
|
|
+ <a-form-item label="推荐岗位筛选:" :label-col="{ span: 8 }" name="recommendPostWhere">
|
|
|
<a-checkbox-group v-model:value="checkRecommendPostWhereList" :options="recommendPostWhereList"/>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
|
+
|
|
|
<a-row :gutter="24" >
|
|
|
+ <a-col :span="8" >
|
|
|
+ <a-form-item label="薪资待遇(元)" :label-col="{ span: 6 }" name="salaryProvide">
|
|
|
+ <a-input-group compact>
|
|
|
+ <a-input :min="0" :controls="false" v-model:value="searchParams.minSalary"
|
|
|
+ style="width:110px;" placeholder=""/>
|
|
|
+ <a-input placeholder="——" disabled style="width: 30px; border-left: 0;border-right: 0;
|
|
|
+ pointer-events: none;background: #fff;margin-left: 1px; "/>
|
|
|
+ <a-input :min="searchParams.minSalary" :controls="false" v-model:value="searchParams.maxSalary"
|
|
|
+ style="width:110px;" placeholder=""/>
|
|
|
+ </a-input-group>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+
|
|
|
+ <a-col :span="8" >
|
|
|
+ <a-form-item label="所属区县" :label-col="{ span: 4 }" name="regionCodeList">
|
|
|
+ <a-select
|
|
|
+ v-model:value="curRegionNameList"
|
|
|
+ :options="regionList"
|
|
|
+ mode="multiple"
|
|
|
+ size="middle"
|
|
|
+ @change="curRegionNameListChange"
|
|
|
+ >
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+
|
|
|
+ <a-col :span="8" >
|
|
|
+ <a-form-item label="所属驿站" :label-col="{ span: 4 }" name="siteIDList">
|
|
|
+ <a-select
|
|
|
+ v-model:value="curSiteNameList"
|
|
|
+ :options="allSiteList"
|
|
|
+ mode="multiple"
|
|
|
+ size="middle"
|
|
|
+ @change="onSearch"
|
|
|
+ >
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ </a-col>
|
|
|
</a-row>
|
|
|
<a-row class="edit-operation">
|
|
|
<a-col :span="24" style="text-align: right">
|
|
@@ -124,9 +181,21 @@
|
|
|
<a-button type="link" size="small" @click='onRecommend(record)'>推荐</a-button>
|
|
|
</div>
|
|
|
</template>
|
|
|
+ <template v-if="column.key === 'companyName'">
|
|
|
+ <div style="text-align: center;color:#3a7be0;">
|
|
|
+ <a size="small" @click='onShowCompanyInfo(record)' >{{ record.companyName }}</a>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-if="column.key === 'professionName'">
|
|
|
+ <div style="text-align: center;color:#3a7be0;">
|
|
|
+ <a size="small" @click='onShowPostInfo(record)' >{{ record.professionName }}</a>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
</template>
|
|
|
</a-table>
|
|
|
</div>
|
|
|
+ <companyDetailModel ref="modalCompanyInfoRef"></companyDetailModel>
|
|
|
+ <postDetailModel ref="modalPostInfoRef"></postDetailModel>
|
|
|
</div>
|
|
|
</a-modal>
|
|
|
</template>
|
|
@@ -138,22 +207,33 @@ import {getRecommendCompanyPostList, addRecommend,getProfessionLikeList, getComp
|
|
|
import {getPaginationTotalTitle} from '@/utils/common';
|
|
|
import dayjs from 'dayjs';
|
|
|
import {message, SelectProps} from "ant-design-vue";
|
|
|
-import {getSysDictionaryList} from '@/api/system/dictionary';
|
|
|
import {get} from "@/api/common";
|
|
|
import {debounce} from "lodash-es";
|
|
|
+import {getSiteList} from "@/api/baseSettings/siteInfo";
|
|
|
+import {getRegionCodeList } from '@/api/system/area/index';
|
|
|
+import {getSysDictionaryList} from "@/api/system/dictionary";
|
|
|
+import CompanyDetailModel from "./companyDetail.vue";
|
|
|
+import PostDetailModel from "./postDetail.vue";
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'RecommendCompanyPostList',
|
|
|
+ components: { CompanyDetailModel,PostDetailModel},
|
|
|
setup() {
|
|
|
const visible = ref<boolean>(false);
|
|
|
const confirmLoading = ref<boolean>(false);
|
|
|
const formRef = ref<FormInstance>();
|
|
|
const expand = ref(false);
|
|
|
const title = ref<string>();
|
|
|
+ const modalCompanyInfoRef = ref();
|
|
|
+ const modalPostInfoRef = ref();
|
|
|
const dataList = ref([]);
|
|
|
+ const allSiteList = ref<any>([]);
|
|
|
+ const regionList = ref<any>([]);
|
|
|
const companyList = ref<SelectProps['options']>();
|
|
|
+ const cultureLevelList = ref<SelectProps['options']>();
|
|
|
+ const workYearTypeList = ref<SelectProps['options']>();
|
|
|
const addRecommendList = ref([] as any);
|
|
|
- const recommendPostWhereList = ref([] as any);
|
|
|
+ const recommendPostWhereList = ref([{label:'岗位',value:1},{label:'相关行业',value:2}] as any);
|
|
|
const jobUserID = ref();
|
|
|
|
|
|
get('companyService/company/getList', {pageIndex: 1, pageSize: 9999}).then(result => {
|
|
@@ -172,6 +252,41 @@ export default defineComponent({
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ const getCultureLevelList = async function () {
|
|
|
+ const data: any = await getSysDictionaryList("CultureLevel");
|
|
|
+ cultureLevelList.value = data;
|
|
|
+ }
|
|
|
+
|
|
|
+ const getWorkYearTypeList = async function () {
|
|
|
+ const data: any = await getSysDictionaryList("WorkYearType");
|
|
|
+ workYearTypeList.value = data;
|
|
|
+ }
|
|
|
+
|
|
|
+ const getRegionList = async function () {
|
|
|
+ const regionResult: any = await getRegionCodeList();
|
|
|
+ regionResult.map(x=>{
|
|
|
+ regionList.value.push({value:x.name});
|
|
|
+ });
|
|
|
+ };
|
|
|
+ const getAllSites = () => {
|
|
|
+ allSiteList.value = [];
|
|
|
+ getSiteList({pageIndex:1,pageSize:9999}).then((result :any) => {
|
|
|
+ result.list.map(x=>{
|
|
|
+ if(curRegionNameList.value.length>0){
|
|
|
+ curRegionNameList.value.map(m=> {
|
|
|
+ if(x.regionName == m){
|
|
|
+ allSiteList.value.push({value:x.siteName});
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ allSiteList.value.push({value:x.siteName});
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ const curRegionNameList = ref([]);
|
|
|
+ const curSiteNameList = ref([]);
|
|
|
const searchParams = reactive({
|
|
|
pageIndex: 1,
|
|
|
pageSize: 10,
|
|
@@ -184,10 +299,12 @@ export default defineComponent({
|
|
|
professionID: '',
|
|
|
inviteProfessionID: '',
|
|
|
parentProfessionID: '',
|
|
|
- cultureRank: null,
|
|
|
- workYear: null,
|
|
|
+ cultureRank: '',
|
|
|
+ workYear: '',
|
|
|
minSalary: null,
|
|
|
- maxSalary: null
|
|
|
+ maxSalary: null,
|
|
|
+ regionNameList:'',
|
|
|
+ siteNameList:'',
|
|
|
});
|
|
|
const formState = reactive({
|
|
|
total: 0,
|
|
@@ -200,10 +317,6 @@ export default defineComponent({
|
|
|
checkRecommendPostWhereList: [1],
|
|
|
professionID: '',
|
|
|
parentProfessionID: '',
|
|
|
- cultureRank: null,
|
|
|
- workYear: null,
|
|
|
- minSalary: null,
|
|
|
- maxSalary: null
|
|
|
});
|
|
|
const columns: TableColumnsType = [
|
|
|
{
|
|
@@ -214,7 +327,7 @@ export default defineComponent({
|
|
|
customRender: (item) =>
|
|
|
`${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`,
|
|
|
},
|
|
|
- {title: '企业名称', dataIndex: 'companyName', key: 'companyName', align: "center",},
|
|
|
+ {title: '企业名称', dataIndex: 'companyName', key: 'companyName',width:125, align: "center",},
|
|
|
{title: '招聘岗位', dataIndex: 'professionName', key: 'professionName', align: "center",},
|
|
|
{title: '要求学历', dataIndex: 'cultureRankName', key: 'cultureRankName', align: "center",},
|
|
|
{title: '工作年限', dataIndex: 'workYearName', key: 'workYearName', align: "center",},
|
|
@@ -227,14 +340,13 @@ export default defineComponent({
|
|
|
}
|
|
|
},
|
|
|
{title: '联系电话', dataIndex: 'contactMobile', key: 'contactMobile', align: "center",},
|
|
|
- {title: '工作地点', dataIndex: 'companyAddress', key: 'companyAddress', align: "center",},
|
|
|
+ {title: '所属县区', dataIndex: 'regionName', key: 'regionName', align: "center",},
|
|
|
+ {title: '所属驿站', dataIndex: 'siteName', key: 'siteName', align: "center",},
|
|
|
+ // {title: '工作地点', dataIndex: 'companyAddress', key: 'companyAddress', align: "center",},
|
|
|
{
|
|
|
- title: '工作开始时间', dataIndex: 'startTime', key: 'startTime', align: "center",
|
|
|
- customRender: ({record}) => record.startTime == null ? "" : dayjs(record.startTime).format('YYYY-MM-DD'),
|
|
|
- },
|
|
|
- {
|
|
|
- title: '工作结束时间', dataIndex: 'endTime', key: 'endTime',align: "center",
|
|
|
- customRender: ({record}) => record.endTime == null ? "" : dayjs(record.endTime).format('YYYY-MM-DD'),
|
|
|
+ title: '招聘日期', dataIndex: 'startTime', key: 'startTime', align: "center",
|
|
|
+ customRender: ({record}) => (record.startTime == null && record.endTime == null ) ? "" :
|
|
|
+ dayjs(record.startTime).format('YYYY-MM-DD') + "至"+dayjs(record.endTime).format('YYYY-MM-DD'),
|
|
|
},
|
|
|
{title: '操作', key: 'operation', width: 60, align: 'center'},
|
|
|
];
|
|
@@ -303,23 +415,26 @@ export default defineComponent({
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ const curRegionNameListChange = ()=>{
|
|
|
+ curSiteNameList.value = [];
|
|
|
+ getAllSites();
|
|
|
+ onSearch();
|
|
|
+ }
|
|
|
+
|
|
|
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;
|
|
|
- searchParams.workYear = state.checkRecommendPostWhereList.findIndex(x => x == 3) >= 0 ? state.workYear : null;
|
|
|
- if (state.checkRecommendPostWhereList.findIndex(x => x == 4) >= 0) {
|
|
|
- searchParams.minSalary = state.minSalary;
|
|
|
- searchParams.maxSalary = state.maxSalary;
|
|
|
- } else {
|
|
|
- searchParams.minSalary = null;
|
|
|
- searchParams.maxSalary = null;
|
|
|
- }
|
|
|
- searchParams.parentProfessionID = state.checkRecommendPostWhereList.findIndex(x => x == 5) >= 0 ? state.parentProfessionID : "";
|
|
|
+ searchParams.parentProfessionID = state.checkRecommendPostWhereList.findIndex(x => x == 2) >= 0 ? state.parentProfessionID : "";
|
|
|
+ searchParams.regionNameList = curRegionNameList.value.join(',');
|
|
|
+ searchParams.siteNameList = curSiteNameList.value.join(',');
|
|
|
loadData();
|
|
|
}
|
|
|
|
|
|
const loadData = async function () {
|
|
|
formState.loading = true;
|
|
|
+ await getCultureLevelList();
|
|
|
+ await getWorkYearTypeList();
|
|
|
+ await getAllSites();
|
|
|
+ await getRegionList();
|
|
|
const result: any = await getRecommendCompanyPostList(searchParams);
|
|
|
dataList.value = result.list;
|
|
|
formState.total = result.total;
|
|
@@ -333,6 +448,14 @@ export default defineComponent({
|
|
|
});
|
|
|
};
|
|
|
|
|
|
+ const onShowPostInfo = (item: any) => {
|
|
|
+ modalPostInfoRef.value.show(item.postID);
|
|
|
+ };
|
|
|
+
|
|
|
+ const onShowCompanyInfo = (item: any) => {
|
|
|
+ modalCompanyInfoRef.value.show(item.companyID);
|
|
|
+ };
|
|
|
+
|
|
|
watch(
|
|
|
() => state.checkRecommendPostWhereList,
|
|
|
val => {
|
|
@@ -358,8 +481,7 @@ export default defineComponent({
|
|
|
}
|
|
|
|
|
|
const show = (professionID: any, professionName: any, jobHuntID: any, jobUserName: any, type: any,
|
|
|
- parentProfessionID: any, cultureRank: any, workYear: any, minSalary: any, maxSalary: any,
|
|
|
- jobUserId: any, titleName: string) => {
|
|
|
+ parentProfessionID: any,jobUserId: any, titleName: string) => {
|
|
|
jobUserID.value = jobUserId;
|
|
|
|
|
|
visible.value = true;
|
|
@@ -369,18 +491,13 @@ export default defineComponent({
|
|
|
searchParams.professionName = professionName;
|
|
|
searchParams.type = type;
|
|
|
searchParams.parentProfessionID = '';
|
|
|
- searchParams.cultureRank = null;
|
|
|
- searchParams.workYear = null;
|
|
|
+ searchParams.cultureRank = '';
|
|
|
+ searchParams.workYear = '';
|
|
|
searchParams.minSalary = null;
|
|
|
searchParams.maxSalary = null;
|
|
|
state.checkRecommendPostWhereList = [1];
|
|
|
state.professionID = professionID;
|
|
|
state.parentProfessionID = parentProfessionID;
|
|
|
- state.cultureRank = cultureRank;
|
|
|
- state.workYear = workYear;
|
|
|
- state.workYear = workYear;
|
|
|
- state.minSalary = minSalary;
|
|
|
- state.maxSalary = maxSalary;
|
|
|
title.value = titleName;
|
|
|
loadData();
|
|
|
}
|
|
@@ -442,11 +559,7 @@ export default defineComponent({
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- const getRecommendPostWhereList = () => {
|
|
|
- getSysDictionaryList('RecommendPostWhere').then((data) => {
|
|
|
- recommendPostWhereList.value = data.map((x: any) => ({label: x.name, value: x.value}));
|
|
|
- });
|
|
|
- };
|
|
|
+
|
|
|
|
|
|
const handleOk = () => {
|
|
|
visible.value = false;
|
|
@@ -461,6 +574,8 @@ export default defineComponent({
|
|
|
visible,
|
|
|
confirmLoading,
|
|
|
formRef,
|
|
|
+ modalPostInfoRef,
|
|
|
+ modalCompanyInfoRef,
|
|
|
expand,
|
|
|
searchParams,
|
|
|
...toRefs(state),
|
|
@@ -468,10 +583,19 @@ export default defineComponent({
|
|
|
columns,
|
|
|
pagination,
|
|
|
dataList,
|
|
|
+ regionList,
|
|
|
+ allSiteList,
|
|
|
companyList,
|
|
|
+ curSiteNameList,
|
|
|
+ curRegionNameList,
|
|
|
+ cultureLevelList,
|
|
|
+ workYearTypeList,
|
|
|
inviteProfessionList,
|
|
|
recommendPostWhereList,
|
|
|
show,
|
|
|
+ onShowPostInfo,
|
|
|
+ onShowCompanyInfo,
|
|
|
+ curRegionNameListChange,
|
|
|
onSearch,
|
|
|
formatStr,
|
|
|
companyChange,
|
|
@@ -483,14 +607,10 @@ export default defineComponent({
|
|
|
onSelectChange,
|
|
|
handleTableChange,
|
|
|
loadData,
|
|
|
- getRecommendPostWhereList,
|
|
|
selectInviteProfessionList,
|
|
|
handleOk,
|
|
|
handleCancel
|
|
|
};
|
|
|
- },
|
|
|
- mounted() {
|
|
|
- this.getRecommendPostWhereList();
|
|
|
}
|
|
|
});
|
|
|
</script>
|