招聘网页
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

search.vue 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <template>
  2. <a-form :model="commomParams.search">
  3. <a-row :gutter="20">
  4. <a-col span="6">
  5. <a-form-item>
  6. <a-select v-model:value="commomParams.search.department_id" @change="departmentChange"
  7. placeholder="请进行搜索选择部门" show-search :filter-option="false" label-in-value
  8. @search="departmentSearch">
  9. <a-select-option v-for="item in department_list" :key="item.id" :value="item.id"
  10. :label="item.name" label-in-value>{{item.name}}</a-select-option>
  11. </a-select>
  12. </a-form-item>
  13. </a-col>
  14. <a-col span="6">
  15. <a-form-item>
  16. <a-select v-model:value="commomParams.search.job_id" @change="jobChange"
  17. placeholder="请进行搜索选择职位" show-search :filter-option="false" label-in-value
  18. @search="jobSearch">
  19. <a-select-option v-for="item in job_list" :key="item.id" :value="item.id"
  20. :label="item.name" label-in-value>{{item.name}}</a-select-option>
  21. </a-select>
  22. </a-form-item>
  23. </a-col>
  24. <a-col span="6">
  25. <a-form-item>
  26. <a-select v-model:value="commomParams.search.status" @change="statusChange"
  27. placeholder="简历查看状态">
  28. <a-select-option :key="1">已查看</a-select-option>
  29. <a-select-option :key="2">未查看</a-select-option>
  30. </a-select>
  31. </a-form-item>
  32. </a-col>
  33. <a-col span="6">
  34. <a-button type="primary" @click="clearSearch">重置</a-button>
  35. </a-col>
  36. </a-row>
  37. </a-form>
  38. </template>
  39. <script lang="ts" setup>
  40. import { ref, onMounted, watch, computed } from 'vue';
  41. import { GetCompanyDepartmentList, PostCompanyJobList } from '@/apis/models';
  42. import { useCommon } from '@/hooks/useCommon';
  43. let { commomParams } = useCommon();
  44. let props = defineProps(['search_params']);
  45. const emit = defineEmits();
  46. interface listType {
  47. department_id : String
  48. job_id : String
  49. status : String,
  50. customer_name : String
  51. }
  52. commomParams.value.search = commomParams.value.search as listType;
  53. commomParams.value.search.department_id = null;
  54. commomParams.value.search.job_id = null;
  55. commomParams.value.search.status = null;
  56. commomParams.value.search.customer_name = '';
  57. watch(() => props.search_params, (newVal) => {
  58. emit('searchData', commomParams.value.search)
  59. })
  60. const getData = () => {
  61. emit('searchData', commomParams.value.search)
  62. }
  63. // 清空搜索
  64. const clearSearch = () => {
  65. commomParams.value.search = {
  66. page: 1,
  67. pagesize: 10,
  68. sort: 'id',
  69. sortby: 'asc',
  70. keyword: ''
  71. }
  72. emit('clearData', commomParams.value.search)
  73. }
  74. onMounted(() => {
  75. departmentSearch()
  76. JobSearch()
  77. })
  78. // 选择部门
  79. let department_list = ref<Object[]>([])
  80. const departmentSearch = (val) => {
  81. GetCompanyDepartmentList({pagesize: 100, keyword: val }).then(res => {
  82. department_list.value = res.data.rows;
  83. })
  84. }
  85. const departmentChange = (val : Object) => {
  86. commomParams.value.search.department_id = val.key;
  87. getData()
  88. }
  89. // 选择职位
  90. let job_list = ref<Object[]>([])
  91. const JobSearch = (val) => {
  92. PostCompanyJobList({pagesize: 100, keyword: val }).then(res => {
  93. job_list.value = res.data.list;
  94. })
  95. }
  96. const jobChange = (val : Object) => {
  97. commomParams.value.search.job_id = val.key;
  98. getData()
  99. }
  100. const statusChange = (val : Object) => {
  101. commomParams.value.search.status = val;
  102. getData()
  103. }
  104. </script>
  105. <style>
  106. </style>