浏览代码

求职信息管理

lizeyu 11 月之前
父节点
当前提交
2f9e2b9f1e

+ 10 - 5
vue/src/views/companyService/post/index.vue

@@ -86,7 +86,7 @@
       </a-row>
       </a-row>
     </a-form>
     </a-form>
     <div class="search-result-list">
     <div class="search-result-list">
-      <a-table :columns="columns" :data-source="dataList" :scroll="{ x:'100%', y: 500 }" :pagination="pagination"
+      <a-table :columns="columns" :data-source="dataList" :scroll="{ x:2000, y: 500 }" :pagination="pagination"
                :loading="formState.loading"
                :loading="formState.loading"
                @change="handleTableChange"
                @change="handleTableChange"
                :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange}"
                :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange}"
@@ -103,6 +103,7 @@
         </template>
         </template>
       </a-table>
       </a-table>
     </div>
     </div>
+    <Recommend ref="recommendRef"></Recommend>
   </div>
   </div>
 </template>
 </template>
 
 
@@ -122,9 +123,10 @@ import {useRoute} from 'vue-router';
 import {useTabsViewStore} from "@/store/modules/tabsView";
 import {useTabsViewStore} from "@/store/modules/tabsView";
 import type {ImportProps} from "@/components/basic/excel/importExcel/ImportProps";
 import type {ImportProps} from "@/components/basic/excel/importExcel/ImportProps";
 import {get} from "@/api/common";
 import {get} from "@/api/common";
+import Recommend from "@/views/companyService/post/recommend.vue";
 
 
 export default defineComponent({
 export default defineComponent({
-  components: {DownOutlined, UpOutlined, BExportExcel, BImportExcel},
+  components: {DownOutlined, UpOutlined, BExportExcel, BImportExcel, Recommend},
   setup: function () {
   setup: function () {
     const formRef = ref<FormInstance>();
     const formRef = ref<FormInstance>();
     const searchParams = reactive({
     const searchParams = reactive({
@@ -138,6 +140,7 @@ export default defineComponent({
     const expand = ref(false);
     const expand = ref(false);
     const companyList = ref<SelectProps['options']>();
     const companyList = ref<SelectProps['options']>();
     const postStatusList = [{name: '启用', value: 1}, {name: '禁用', value: 0}];
     const postStatusList = [{name: '启用', value: 1}, {name: '禁用', value: 0}];
+    const recommendRef = ref();
     const importOptions = ref<ImportProps>({
     const importOptions = ref<ImportProps>({
       title: '导入',
       title: '导入',
       url: 'companyService/post/importPost',
       url: 'companyService/post/importPost',
@@ -175,6 +178,7 @@ export default defineComponent({
         title: '序号',
         title: '序号',
         align: "center",
         align: "center",
         key: 'institutionID',
         key: 'institutionID',
+        width: 90,
         customRender: item => `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`
         customRender: item => `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`
       },
       },
       {title: '岗位名称', dataIndex: 'professionName', key: 'professionName', align: "center"},
       {title: '岗位名称', dataIndex: 'professionName', key: 'professionName', align: "center"},
@@ -195,7 +199,7 @@ export default defineComponent({
         }
         }
       },
       },
       {title: '工种名称', dataIndex: 'workName', key: 'workName', align: "center"},
       {title: '工种名称', dataIndex: 'workName', key: 'workName', align: "center"},
-      {title: '文化程度', dataIndex: 'cultureLevelName', key: 'cultureLevelName', align: "center"},
+      {title: '文化程度', dataIndex: 'cultureLevelName', key: 'cultureLevelName', width: 150, align: "center"},
       {
       {
         title: '薪酬', dataIndex: 'postSalary', key: 'postSalary', align: "center", customRender: (item) => {
         title: '薪酬', dataIndex: 'postSalary', key: 'postSalary', align: "center", customRender: (item) => {
           const salary = showSalary(item.record.minSalary,item.record.maxSalary);/*`${item.record.minSalary ?? ""}-${item.record.maxSalary ?? ""}`*/
           const salary = showSalary(item.record.minSalary,item.record.maxSalary);/*`${item.record.minSalary ?? ""}-${item.record.maxSalary ?? ""}`*/
@@ -203,7 +207,7 @@ export default defineComponent({
         }
         }
       },
       },
       {title: '联系人', dataIndex: 'userName', key: 'userName', align: "center"},
       {title: '联系人', dataIndex: 'userName', key: 'userName', align: "center"},
-      {title: '联系电话', dataIndex: 'userMobile', key: 'userMobile', align: "center"},
+      {title: '联系电话', dataIndex: 'userMobile', key: 'userMobile', width: 200, align: "center"},
       {title: '操作', key: 'operation', fixed: 'right', width: 200, align: "center"},
       {title: '操作', key: 'operation', fixed: 'right', width: 200, align: "center"},
     ];
     ];
     const pagination = computed(() => ({
     const pagination = computed(() => ({
@@ -235,7 +239,7 @@ export default defineComponent({
     };
     };
 
 
     const onRecommendJob = (item) =>{
     const onRecommendJob = (item) =>{
-      tabsViewStore.addTabByPath('/companyService/post/recommend', {professionID:item.professionID,professionName:item.professionName,postID:item.postID,companyName:item.companyName});
+      recommendRef.value.show(item.professionID,item.professionName,item.postID,item.companyName);
     }
     }
 
 
     const handleTableChange: TableProps['onChange'] = (pag: { pageSize: number; current: number },) => {
     const handleTableChange: TableProps['onChange'] = (pag: { pageSize: number; current: number },) => {
@@ -304,6 +308,7 @@ export default defineComponent({
       pagination,
       pagination,
       dataList,
       dataList,
       importOptions,
       importOptions,
+      recommendRef,
       showSalary,
       showSalary,
       getCompanyList,
       getCompanyList,
       handleTableChange,
       handleTableChange,

+ 149 - 108
vue/src/views/companyService/post/recommend.vue

@@ -1,104 +1,116 @@
 <template>
 <template>
-  <div class="card-search">
-    <a-form
-      ref="formRef"
-      name="advanced_search"
-      class="ant-advanced-search-form"
-      :model="searchParams"
-    >
-      <a-row :gutter="24">
-        <a-col :span="6">
-          <a-form-item label="招聘企业" :label-col="{ span: 8 }" name="companyName">
-            <a-input v-model:value="searchParams.companyName" style="color: black;" disabled="true" placeholder=""/>
-          </a-form-item>
-        </a-col>
-        <a-col :span="6">
-          <a-form-item label="招聘岗位" :label-col="{ span: 8 }" name="professionName">
-            <a-input v-model:value="searchParams.professionName" style="color: black;" disabled="true" placeholder=""/>
-          </a-form-item>
-        </a-col>
-        <a-col :span="8">
-        </a-col>
-        <a-col :span="4" style="text-align: left">
-          <a-button type="primary" html-type="submit" @click="onSearch">查询</a-button>
-          <a-button
-            style="margin: 0 8px"
-            @click="
+  <a-modal
+    :width="1300"
+    v-model:visible="visible"
+    title="推荐求职人员"
+    :confirm-loading="confirmLoading"
+    @ok="handleOk"
+    ok-text="确认"
+    cancel-text="取消"
+    :keyboard="false"
+    :mask-closable="false"
+  >
+    <div class="card-search">
+      <a-form
+        ref="formRef"
+        name="advanced_search"
+        class="ant-advanced-search-form"
+        :model="searchParams"
+      >
+        <a-row :gutter="24">
+          <a-col :span="6">
+            <a-form-item label="招聘企业" :label-col="{ span: 8 }" name="companyName">
+              <a-input v-model:value="searchParams.companyName" style="color: black;" disabled="true" placeholder=""/>
+            </a-form-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-item label="招聘岗位" :label-col="{ span: 8 }" name="professionName">
+              <a-input v-model:value="searchParams.professionName" style="color: black;" disabled="true"
+                       placeholder=""/>
+            </a-form-item>
+          </a-col>
+          <a-col :span="4"></a-col>
+          <a-col :span="5" style="text-align: left">
+            <a-button type="primary" html-type="submit" @click="onSearch">查询</a-button>
+            <a-button
+              style="margin: 0 8px"
+              @click="
               () => {
               () => {
                 searchParams.pageIndex = 1;
                 searchParams.pageIndex = 1;
-                searchParams.pageSize = 20;
+                searchParams.pageSize = 10;
                 searchParams.companyName = null;
                 searchParams.companyName = null;
                 loadData();
                 loadData();
               }
               }
             ">重置
             ">重置
-          </a-button>
-          <a style="font-size: 12px" @click="expand = !expand">
-            <template v-if="expand">
-              <UpOutlined/>
+            </a-button>
+            <a style="font-size: 12px" @click="expand = !expand">
+              <template v-if="expand">
+                <UpOutlined/>
+              </template>
+              <template v-else>
+                <DownOutlined/>
+              </template>
+              {{ expand ? '收缩' : '展开' }}
+            </a>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24" v-show="expand">
+          <a-col :span="6">
+            <a-form-item label="求职人员姓名" :label-col="{ span: 8 }" name="userName">
+              <a-input v-model:value="searchParams.userName" placeholder=""/>
+            </a-form-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-item label="学历选择" :label-col="{span:6}" name="cultureLevel">
+              <a-select
+                ref="select"
+                v-model:value="searchParams.cultureLevel"
+                :options="cultureLevelList"
+                :field-names="{ label: 'name', value: 'value' }"
+                :allow-clear="true"
+                @change="loadData"
+              >
+              </a-select>
+            </a-form-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-item label="重点人员类别" :label-col="{span:6}" name="cultureLevel">
+              <a-select
+                ref="select"
+                v-model:value="searchParams.keyPersonType"
+                :options="keyPersonTypeList"
+                :field-names="{ label: 'name', value: 'value' }"
+                :allow-clear="true"
+                @change="loadData"
+              >
+              </a-select>
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row class="edit-operation">
+          <a-col :span="24" style="text-align: right">
+            <a-button type="primary" html-type="submit" functioncode="T01030202" @click='onBatchRecommend()'>批量推荐
+            </a-button>
+          </a-col>
+        </a-row>
+      </a-form>
+      <div class="search-result-list">
+        <a-table :columns="columns" :data-source="dataList" :scroll="{ x: '100%', y: 500 }" :pagination="pagination"
+                 :loading="formState.loading"
+                 :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange }"
+                 :row-key="(record) => record.recommendMgtID" bordered @change="handleTableChange">
+          <template #bodyCell="{ column, text, record }">
+            <template v-if="column.key === 'operation'">
+              <div class="table-operation">
+                <a-button type="link" size="small" @click='onRecommend(record)'>推荐
+                </a-button>
+              </div>
             </template>
             </template>
-            <template v-else>
-              <DownOutlined/>
-            </template>
-            {{ expand ? '收缩' : '展开' }}
-          </a>
-        </a-col>
-      </a-row>
-      <a-row :gutter="24" v-show="expand">
-        <a-col :span="6">
-          <a-form-item label="招聘人员姓名" :label-col="{ span: 8 }" name="userName">
-            <a-input v-model:value="searchParams.userName" placeholder=""/>
-          </a-form-item>
-        </a-col>
-        <a-col :span="6">
-          <a-form-item label="学历选择" :label-col="{span:6}" name="cultureLevel">
-            <a-select
-              ref="select"
-              v-model:value="searchParams.cultureLevel"
-              :options="cultureLevelList"
-              :field-names="{ label: 'name', value: 'value' }"
-              :allow-clear="true"
-              @change="loadData"
-            >
-            </a-select>
-          </a-form-item>
-        </a-col>
-        <a-col :span="6">
-          <a-form-item label="重点人员类别" :label-col="{span:6}" name="cultureLevel">
-            <a-select
-              ref="select"
-              v-model:value="searchParams.keyPersonType"
-              :options="keyPersonTypeList"
-              :field-names="{ label: 'name', value: 'value' }"
-              :allow-clear="true"
-              @change="loadData"
-            >
-            </a-select>
-          </a-form-item>
-        </a-col>
-      </a-row>
-      <a-row class="edit-operation">
-        <a-col :span="24" style="text-align: right">
-          <a-button type="primary" html-type="submit" functioncode="T01030202" @click='onBatchRecommend()'>批量推荐
-          </a-button>
-        </a-col>
-      </a-row>
-    </a-form>
-    <div class="search-result-list">
-      <a-table :columns="columns" :data-source="dataList" :scroll="{ x: '100%', y: 500 }" :pagination="pagination"
-               :loading="formState.loading"
-               :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange }"
-               :row-key="(record) => record.recommendMgtID" bordered @change="handleTableChange">
-        <template #bodyCell="{ column, text, record }">
-          <template v-if="column.key === 'operation'">
-            <div class="table-operation">
-              <a-button type="link" size="small" @click='onRecommend(record)'>推荐
-              </a-button>
-            </div>
           </template>
           </template>
-        </template>
-      </a-table>
+        </a-table>
+      </div>
     </div>
     </div>
-  </div>
+  </a-modal>
 </template>
 </template>
 
 
 <script lang="ts">
 <script lang="ts">
@@ -113,11 +125,13 @@ import {message} from "ant-design-vue";
 export default defineComponent({
 export default defineComponent({
   name: 'RecommendJobList',
   name: 'RecommendJobList',
   setup() {
   setup() {
+    const visible = ref<boolean>(false);
+    const confirmLoading = ref<boolean>(false);
     const formRef = ref<FormInstance>();
     const formRef = ref<FormInstance>();
     const expand = ref(true);
     const expand = ref(true);
     const searchParams = reactive({
     const searchParams = reactive({
       pageIndex: 1,
       pageIndex: 1,
-      pageSize: 20,
+      pageSize: 10,
       postID: null,
       postID: null,
       userName: '',
       userName: '',
       companyName: '',
       companyName: '',
@@ -149,7 +163,7 @@ export default defineComponent({
       {title: '所属驿站', dataIndex: 'siteName', key: 'siteName', width: 150, align: "center",},
       {title: '所属驿站', dataIndex: 'siteName', key: 'siteName', width: 150, align: "center",},
       {title: '文化程度', dataIndex: 'culturerankName', key: 'culturerankName', width: 150, align: "center",},
       {title: '文化程度', dataIndex: 'culturerankName', key: 'culturerankName', width: 150, align: "center",},
       {title: '重点人员类别', dataIndex: 'keypersontypeName', key: 'keypersontypeName', width: 150, align: "center",},
       {title: '重点人员类别', dataIndex: 'keypersontypeName', key: 'keypersontypeName', width: 150, align: "center",},
-      {title: '操作', key: 'operation', width: 100, align: 'center'},
+      {title: '操作', key: 'operation', width: 60, align: 'center'},
     ];
     ];
     const pagination = computed(() => ({
     const pagination = computed(() => ({
       total: formState.total,
       total: formState.total,
@@ -188,31 +202,58 @@ export default defineComponent({
       console.log("huntParams", searchParams);
       console.log("huntParams", searchParams);
     };
     };
 
 
+    const show = (professionID: any, professionName: any, postID: any, companyName: any) => {
+      visible.value = true;
+      searchParams.postID = postID;
+      searchParams.companyName = companyName;
+      searchParams.professionID = professionID;
+      searchParams.professionName = professionName;
+      loadData();
+    }
+
     const onRecommend = (item: any) => {
     const onRecommend = (item: any) => {
-      addRecommendList.value.push({recommendMgtID: item.recommendMgtID,jobHuntID: item.jobhuntID, postID: searchParams.postID, recommendType: searchParams.type});
-      addRecommend(addRecommendList.value).then(()=>{
+      addRecommendList.value.push({
+        recommendMgtID: item.recommendMgtID,
+        jobHuntID: item.jobhuntID,
+        postID: searchParams.postID,
+        recommendType: searchParams.type
+      });
+      addRecommend(addRecommendList.value).then(() => {
         loadData();
         loadData();
-        addRecommendList.length = 0;
+        addRecommendList.value = [];
       });
       });
     };
     };
 
 
     const onBatchRecommend = () => {
     const onBatchRecommend = () => {
-      if(formState.selectedRowKeys.length == 0){
+      if (formState.selectedRowKeys.length == 0) {
         message.warn("请选择需要推荐的求职人员!")
         message.warn("请选择需要推荐的求职人员!")
         return;
         return;
       }
       }
       formState.selectedRowKeys.forEach(id => {
       formState.selectedRowKeys.forEach(id => {
-        const item: any = dataList.value.find((x: any)=>x.recommendMgtID==id)
-        if(item){
-          addRecommendList.value.push({recommendMgtID: item.recommendMgtID,jobHuntID: item.jobhuntID, postID: searchParams.postID, recommendType: searchParams.type});
+        const item: any = dataList.value.find((x: any) => x.recommendMgtID == id)
+        if (item) {
+          addRecommendList.value.push({
+            recommendMgtID: item.recommendMgtID,
+            jobHuntID: item.jobhuntID,
+            postID: searchParams.postID,
+            recommendType: searchParams.type
+          });
         }
         }
       })
       })
-      addRecommend(addRecommendList.value).then(()=>{
+      addRecommend(addRecommendList.value).then(() => {
         loadData();
         loadData();
-        addRecommendList.length = 0;
+        addRecommendList.value = [];
       });
       });
     };
     };
 
 
+    const handleOk = () => {
+      visible.value = false;
+    };
+
+    const handleCancel = () => {
+      visible.value = false;
+    };
+
     const getCultureLevelList = () => {
     const getCultureLevelList = () => {
       getSysDictionaryList('CultureLevel').then((data) => {
       getSysDictionaryList('CultureLevel').then((data) => {
         cultureLevelList.value = data;
         cultureLevelList.value = data;
@@ -226,6 +267,8 @@ export default defineComponent({
     };
     };
 
 
     return {
     return {
+      visible,
+      confirmLoading,
       formRef,
       formRef,
       expand,
       expand,
       searchParams,
       searchParams,
@@ -236,6 +279,7 @@ export default defineComponent({
       cultureLevelList,
       cultureLevelList,
       addRecommendList,
       addRecommendList,
       keyPersonTypeList,
       keyPersonTypeList,
+      show,
       onSearch,
       onSearch,
       onRecommend,
       onRecommend,
       onBatchRecommend,
       onBatchRecommend,
@@ -243,15 +287,12 @@ export default defineComponent({
       handleTableChange,
       handleTableChange,
       loadData,
       loadData,
       getCultureLevelList,
       getCultureLevelList,
-      getKeyPersonTypeList
+      getKeyPersonTypeList,
+      handleOk,
+      handleCancel
     };
     };
   },
   },
   created() {
   created() {
-    this.searchParams.postID = history.state.params?.postID;
-    this.searchParams.companyName = history.state.params?.companyName;
-    this.searchParams.professionID = history.state.params?.professionID;
-    this.searchParams.professionName = history.state.params?.professionName;
-    this.loadData();
   }
   }
 });
 });
 </script>
 </script>

+ 7 - 3
vue/src/views/jobUserManager/jobhunt/index.vue

@@ -119,12 +119,13 @@
             <div class="table-operation">
             <div class="table-operation">
               <a-button type="link" size="small" functioncode="T01030203" @click='onEdit(record.jobHuntID)' >编辑</a-button>
               <a-button type="link" size="small" functioncode="T01030203" @click='onEdit(record.jobHuntID)' >编辑</a-button>
               <a-button type="link" size="small" functioncode="T01030204" @click="onDel(record)" >删除</a-button>
               <a-button type="link" size="small" functioncode="T01030204" @click="onDel(record)" >删除</a-button>
-              <a-button type="link" size="small" functioncode="T01030207" @click="onRecommendCompanyPost(record)" >推荐企业</a-button>
+              <a-button type="link" size="small" functioncode="T01030207" @click="onRecommendCompanyPost(record)" >推荐岗位</a-button>
             </div>
             </div>
           </template>
           </template>
         </template>
         </template>
       </a-table>
       </a-table>
     </div>
     </div>
+    <Recommend ref="recommendRef"></Recommend>
   </div>
   </div>
 </template>
 </template>
 
 
@@ -141,14 +142,16 @@ import {message, Modal} from "ant-design-vue";
 import {ExclamationCircleOutlined} from "@ant-design/icons-vue";
 import {ExclamationCircleOutlined} from "@ant-design/icons-vue";
 import type {ImportProps} from "@/components/basic/excel/importExcel/ImportProps";
 import type {ImportProps} from "@/components/basic/excel/importExcel/ImportProps";
 import {useTabsViewStore} from "@/store/modules/tabsView";
 import {useTabsViewStore} from "@/store/modules/tabsView";
+import Recommend from "@/views/jobUserManager/jobhunt/recommend.vue";
 
 
   export default defineComponent({
   export default defineComponent({
     name: 'JobHuntList',
     name: 'JobHuntList',
-    components: {BImportExcel,BExportExcel},
+    components: {BImportExcel,BExportExcel,Recommend},
     setup() {
     setup() {
       const formRef = ref<FormInstance>();
       const formRef = ref<FormInstance>();
       const tabsViewStore = useTabsViewStore();
       const tabsViewStore = useTabsViewStore();
       const expand = ref(false);
       const expand = ref(false);
+      const recommendRef = ref();
       const searchParamsState = reactive({
       const searchParamsState = reactive({
         pageIndex: 1,
         pageIndex: 1,
         pageSize: 20,
         pageSize: 20,
@@ -308,7 +311,7 @@ import {useTabsViewStore} from "@/store/modules/tabsView";
       };
       };
 
 
       const onRecommendCompanyPost = (item) =>{
       const onRecommendCompanyPost = (item) =>{
-        tabsViewStore.addTabByPath('/jobusermgr/jobhunt/recommend', {professionID:item.professionID,professionName:item.professionName,jobHuntID:item.jobHuntID,jobUserName:item.jobUserName});
+        recommendRef.value.show(item.professionID,item.professionName,item.jobHuntID,item.jobUserName);
       }
       }
 
 
       const getJobHuntTypeList = () => {
       const getJobHuntTypeList = () => {
@@ -341,6 +344,7 @@ import {useTabsViewStore} from "@/store/modules/tabsView";
         jobHuntTypeList,
         jobHuntTypeList,
         jobUserTypeList,
         jobUserTypeList,
         isAccomplishList,
         isAccomplishList,
+        recommendRef,
         showSalary,
         showSalary,
         loadData,
         loadData,
         onSearch,
         onSearch,

+ 139 - 90
vue/src/views/jobUserManager/jobhunt/recommend.vue

@@ -1,91 +1,109 @@
 <template>
 <template>
-  <div class="card-search">
-    <a-form
-      ref="formRef"
-      name="advanced_search"
-      class="ant-advanced-search-form"
-      :model="searchParams"
-    >
-      <a-row :gutter="24">
-        <a-col :span="6">
-          <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>
-        <a-col :span="6">
-          <a-form-item label="求职岗位" :label-col="{ span: 8 }" name="professionName">
-            <a-input v-model:value="searchParams.professionName" style="color: black;" disabled="true" placeholder="" />
-          </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>
-        </a-col>
-        <a-col :span="4" style="text-align: left">
-          <a-button type="primary" html-type="submit" @click="onSearch">查询</a-button>
-          <a-button
-            style="margin: 0 8px"
-            @click="
+  <a-modal
+    :width="1100"
+    v-model:visible="visible"
+    title="推荐岗位"
+    :confirm-loading="confirmLoading"
+    @ok="handleOk"
+    ok-text="确认"
+    cancel-text="取消"
+    :keyboard="false"
+    :mask-closable="false"
+  >
+    <div class="card-search">
+      <a-form
+        ref="formRef"
+        name="advanced_search"
+        class="ant-advanced-search-form"
+        :model="searchParams"
+      >
+        <a-row :gutter="24">
+          <a-col :span="6">
+            <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>
+          <a-col :span="6">
+            <a-form-item label="求职岗位" :label-col="{ span: 8 }" name="professionName">
+              <a-input v-model:value="searchParams.professionName" style="color: black;" disabled="true"
+                       placeholder=""/>
+            </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>
+          </a-col>
+          <a-col :span="4" style="text-align: left">
+            <a-button type="primary" html-type="submit" @click="onSearch">查询</a-button>
+            <a-button
+              style="margin: 0 8px"
+              @click="
               () => {
               () => {
                 searchParams.pageIndex = 1;
                 searchParams.pageIndex = 1;
-                searchParams.pageSize = 20;
+                searchParams.pageSize = 10;
                 searchParams.companyName = null;
                 searchParams.companyName = null;
                 loadData();
                 loadData();
               }
               }
-            ">重置</a-button>
-<!--          <a style="font-size: 12px" @click="expand = !expand">-->
-<!--            <template v-if="expand">-->
-<!--              <UpOutlined />-->
-<!--            </template>-->
-<!--            <template v-else>-->
-<!--              <DownOutlined />-->
-<!--            </template>-->
-<!--            {{ expand ? '收缩' : '展开' }}-->
-<!--          </a>-->
-        </a-col>
-      </a-row>
-      <a-row class="edit-operation">
-        <a-col :span="24" style="text-align: right">
-          <a-button type="primary" html-type="submit" functioncode="T01030202" @click='onBatchRecommend()' >批量推荐</a-button>
-        </a-col>
-      </a-row>
-    </a-form>
-    <div class="search-result-list">
-      <a-table :columns="columns" :data-source="dataList" :scroll="{ x: '100%', y: 500 }"  :pagination="pagination"
-               :loading="formState.loading" :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange }"
-               :row-key="(record) => record.postID" bordered @change="handleTableChange" >
-        <template #bodyCell="{ column, text, record }">
-          <template v-if="column.key === 'operation'">
-            <div class="table-operation">
-              <a-button type="link" size="small" @click='onRecommend(record)' >推荐</a-button>
-            </div>
+            ">重置
+            </a-button>
+            <!--          <a style="font-size: 12px" @click="expand = !expand">-->
+            <!--            <template v-if="expand">-->
+            <!--              <UpOutlined />-->
+            <!--            </template>-->
+            <!--            <template v-else>-->
+            <!--              <DownOutlined />-->
+            <!--            </template>-->
+            <!--            {{ expand ? '收缩' : '展开' }}-->
+            <!--          </a>-->
+          </a-col>
+        </a-row>
+        <a-row class="edit-operation">
+          <a-col :span="24" style="text-align: right">
+            <a-button type="primary" html-type="submit" functioncode="T01030202" @click='onBatchRecommend()'>批量推荐
+            </a-button>
+          </a-col>
+        </a-row>
+      </a-form>
+      <div class="search-result-list">
+        <a-table :columns="columns" :data-source="dataList" :scroll="{ x: '100%', y: 500 }" :pagination="pagination"
+                 :loading="formState.loading"
+                 :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange }"
+                 :row-key="(record) => record.recommendMgtID" bordered @change="handleTableChange">
+          <template #bodyCell="{ column, text, record }">
+            <template v-if="column.key === 'operation'">
+              <div class="table-operation">
+                <a-button type="link" size="small" @click='onRecommend(record)'>推荐</a-button>
+              </div>
+            </template>
           </template>
           </template>
-        </template>
-      </a-table>
+        </a-table>
+      </div>
     </div>
     </div>
-  </div>
+  </a-modal>
 </template>
 </template>
 
 
 <script lang="ts">
 <script lang="ts">
 import {reactive, ref, computed, defineComponent} from 'vue';
 import {reactive, ref, computed, defineComponent} from 'vue';
-import type { FormInstance, TableColumnsType, TableProps } from 'ant-design-vue';
+import type {FormInstance, TableColumnsType, TableProps} from 'ant-design-vue';
 import {getRecommendCompanyPostList, addRecommend} from '@/api/jobUserManager/recommendMgt';
 import {getRecommendCompanyPostList, addRecommend} from '@/api/jobUserManager/recommendMgt';
-import { getPaginationTotalTitle } from '@/utils/common';
+import {getPaginationTotalTitle} from '@/utils/common';
 import dayjs from 'dayjs';
 import dayjs from 'dayjs';
 import {message} from "ant-design-vue";
 import {message} from "ant-design-vue";
 
 
 export default defineComponent({
 export default defineComponent({
   name: 'RecommendCompanyPostList',
   name: 'RecommendCompanyPostList',
   setup() {
   setup() {
+    const visible = ref<boolean>(false);
+    const confirmLoading = ref<boolean>(false);
     const formRef = ref<FormInstance>();
     const formRef = ref<FormInstance>();
     const expand = ref(false);
     const expand = ref(false);
     const searchParams = reactive({
     const searchParams = reactive({
       pageIndex: 1,
       pageIndex: 1,
-      pageSize: 20,
+      pageSize: 10,
       jobUserName: null,
       jobUserName: null,
       jobHuntID: '',
       jobHuntID: '',
-      professionID:'',
+      professionID: '',
       companyName: null,
       companyName: null,
       professionName: null,
       professionName: null,
       type: 0
       type: 0
@@ -100,18 +118,22 @@ export default defineComponent({
         title: '序号',
         title: '序号',
         align: 'center',
         align: 'center',
         width: 80,
         width: 80,
-        key: 'postID',
+        key: 'recommendMgtID',
         customRender: (item) =>
         customRender: (item) =>
           `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`,
           `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`,
       },
       },
-      { title: '企业名称', dataIndex: 'companyName', key: 'companyName', width: 100,align: "center", },
-      { title: '岗位名称', dataIndex: 'professionName', key: 'professionName', width: 150, align: "center", },
-      { title: '招聘人数', dataIndex: 'recruitCount', key: 'recruitCount', width: 150, align: "center", },
-      { title: '工作开始时间', dataIndex: 'startTime', key: 'startTime', width: 100, align: "center",
-        customRender: ({ record }) => record.startTime == null?"":dayjs(record.startTime).format('YYYY-MM-DD'), },
-      { title: '工作结束时间', dataIndex: 'endTime', key: 'endTime', width: 100, align: "center",
-        customRender: ({ record }) => record.endTime == null?"":dayjs(record.endTime).format('YYYY-MM-DD'), },
-      { title: '操作', key: 'operation', width: 100, align: 'center' },
+      {title: '企业名称', dataIndex: 'companyName', key: 'companyName', width: 100, align: "center",},
+      {title: '岗位名称', dataIndex: 'professionName', key: 'professionName', width: 150, align: "center",},
+      {title: '招聘人数', dataIndex: 'recruitCount', key: 'recruitCount', width: 150, align: "center",},
+      {
+        title: '工作开始时间', dataIndex: 'startTime', key: 'startTime', width: 100, align: "center",
+        customRender: ({record}) => record.startTime == null ? "" : dayjs(record.startTime).format('YYYY-MM-DD'),
+      },
+      {
+        title: '工作结束时间', dataIndex: 'endTime', key: 'endTime', width: 100, align: "center",
+        customRender: ({record}) => record.endTime == null ? "" : dayjs(record.endTime).format('YYYY-MM-DD'),
+      },
+      {title: '操作', key: 'operation', width: 60, align: 'center'},
     ];
     ];
     const pagination = computed(() => ({
     const pagination = computed(() => ({
       total: formState.total,
       total: formState.total,
@@ -146,35 +168,64 @@ export default defineComponent({
       dataList.value = result.list;
       dataList.value = result.list;
       formState.total = result.total;
       formState.total = result.total;
       formState.loading = false;
       formState.loading = false;
-      console.log("huntParams",searchParams);
+      console.log("huntParams", searchParams);
     };
     };
 
 
-    const onRecommend =(item: any)=>{
-      addRecommendList.value.push({recommendMgtID: item.recommendMgtID,postID: item.postID, jobHuntID : searchParams.jobHuntID, recommendType: searchParams.type});
-      addRecommend(addRecommendList.value).then(()=>{
+    const show = (professionID: any, professionName: any, jobHuntID: any, jobUserName: any) => {
+      visible.value = true;
+      searchParams.jobHuntID = jobHuntID;
+      searchParams.jobUserName = jobUserName;
+      searchParams.professionID = professionID;
+      searchParams.professionName = professionName;
+      loadData();
+    }
+
+    const onRecommend = (item: any) => {
+      addRecommendList.value.push({
+        recommendMgtID: item.recommendMgtID,
+        postID: item.postID,
+        jobHuntID: searchParams.jobHuntID,
+        recommendType: searchParams.type
+      });
+      addRecommend(addRecommendList.value).then(() => {
         loadData();
         loadData();
-        addRecommendList.length = 0;
+        addRecommendList.value = [];
       });
       });
     };
     };
 
 
     const onBatchRecommend = () => {
     const onBatchRecommend = () => {
-      if(formState.selectedRowKeys.length == 0){
+      if (formState.selectedRowKeys.length == 0) {
         message.warn("请选择需要推荐的企业!")
         message.warn("请选择需要推荐的企业!")
         return;
         return;
       }
       }
-      formState.selectedRowKeys.forEach(id=>{
-        const item: any = dataList.value.find((x: any)=>x.recommendMgtID==id)
-        if(item){
-          addRecommendList.value.push({recommendMgtID: item.recommendMgtID,postID: item.postID, jobHuntID : searchParams.jobHuntID, recommendType: searchParams.type});
+      formState.selectedRowKeys.forEach(id => {
+        const item: any = dataList.value.find((x: any) => x.recommendMgtID == id)
+        if (item) {
+          addRecommendList.value.push({
+            recommendMgtID: item.recommendMgtID,
+            postID: item.postID,
+            jobHuntID: searchParams.jobHuntID,
+            recommendType: searchParams.type
+          });
         }
         }
       })
       })
-      addRecommend(addRecommendList.value).then(()=>{
+      addRecommend(addRecommendList.value).then(() => {
         loadData();
         loadData();
-        addRecommendList.length = 0;
+        addRecommendList.value = [];
       });
       });
     };
     };
 
 
+    const handleOk = () => {
+      visible.value = false;
+    };
+
+    const handleCancel = () => {
+      visible.value = false;
+    };
+
     return {
     return {
+      visible,
+      confirmLoading,
       formRef,
       formRef,
       expand,
       expand,
       searchParams,
       searchParams,
@@ -182,20 +233,18 @@ export default defineComponent({
       columns,
       columns,
       pagination,
       pagination,
       dataList,
       dataList,
+      show,
       onSearch,
       onSearch,
       onRecommend,
       onRecommend,
       onBatchRecommend,
       onBatchRecommend,
       onSelectChange,
       onSelectChange,
       handleTableChange,
       handleTableChange,
-      loadData
+      loadData,
+      handleOk,
+      handleCancel
     };
     };
   },
   },
   created() {
   created() {
-    this.searchParams.jobHuntID =  history.state.params?.jobHuntID;
-    this.searchParams.jobUserName =  history.state.params?.jobUserName;
-    this.searchParams.professionID =  history.state.params?.professionID;
-    this.searchParams.professionName =  history.state.params?.professionName;
-    this.loadData();
   }
   }
 });
 });
 </script>
 </script>

+ 2 - 2
vue/src/views/jobUserManager/recommendMgt/index.vue

@@ -18,7 +18,7 @@
           </a-form-item>
           </a-form-item>
         </a-col>
         </a-col>
         <a-col :span="6">
         <a-col :span="6">
-          <a-form-item label="类型" :label-col="{ span: 8 }" name="educationId">
+          <a-form-item label="推荐类型" :label-col="{ span: 8 }" name="recommendType">
             <a-select
             <a-select
               ref="select"
               ref="select"
               v-model:value="searchParamsState.recommendType"
               v-model:value="searchParamsState.recommendType"
@@ -90,7 +90,7 @@
         :pagination="pagination"
         :pagination="pagination"
         :loading="formState.loading"
         :loading="formState.loading"
         :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange }"
         :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange }"
-        :row-key="(record) => record.jobHuntId"
+        :row-key="(record) => record.recommendMgtID"
         bordered
         bordered
         @change="handleTableChange"
         @change="handleTableChange"
       >
       >