jobIntention.vue 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <!-- -->
  2. <template>
  3. <view>
  4. <uni-forms ref="form" :modelValue="formData" :rules="rules" validateTrigger="bind" label-width="100%" label-align="left" label-position="top">
  5. <uni-forms-item label="期望岗位" name="positionId">
  6. <uni-data-picker popup-title="请选择期望岗位" v-model="formData.positionId" :localdata="dictObj?.positionTreeData || []" :clear-icon="false" :map="{ text: 'nameCn', value: 'id'}"></uni-data-picker>
  7. </uni-forms-item>
  8. <uni-forms-item label="期望行业" name="industryIdList">
  9. <uni-data-picker popup-title="请选择期望行业" v-model="formData.industryIdList" :localdata="dictObj?.industryTreeData || []" :clear-icon="false" :map="{ text: 'nameCn', value: 'id'}"></uni-data-picker>
  10. </uni-forms-item>
  11. <uni-forms-item label="期望薪资(最低要求)" name="payFrom">
  12. <uni-number-box v-model="formData.payFrom" :min="1" :max="999999999" :step="100" :width="150" @change="payChange"></uni-number-box>
  13. </uni-forms-item>
  14. <uni-forms-item label="期望薪资(最高要求)" name="payTo">
  15. <uni-number-box v-model="formData.payTo" :min="payToMin" :max="999999999" :step="100" :width="150"></uni-number-box>
  16. </uni-forms-item>
  17. <uni-forms-item label="求职类型" name="jobType">
  18. <uni-data-picker popup-title="请选择求职类型" v-model="formData.jobType" :localdata="dictObj?.jobType || []" :clear-icon="false" :map="{ text: 'label', value: 'value'}"></uni-data-picker>
  19. </uni-forms-item>
  20. <uni-forms-item label="工作城市" name="workAreaProvinceId">
  21. <uni-data-picker popup-title="请选择工作城市" v-model="formData.workAreaProvinceId" :localdata="dictObj?.areaTreeData || []" :clear-icon="false" :map="{ text: 'name', value: 'id'}"></uni-data-picker>
  22. </uni-forms-item>
  23. <uni-forms-item label="其它感兴趣的城市" name="interestedAreaIdList">
  24. <uni-data-picker popup-title="其它感兴趣的城市" v-model="formData.interestedAreaIdList" :localdata="dictObj?.areaTreeData || []" :clear-icon="false" :map="{ text: 'name', value: 'id'}"></uni-data-picker>
  25. </uni-forms-item>
  26. </uni-forms>
  27. <view class="f-horizon-center">
  28. <button type="primary" size="default" class="send-button" @click="submit">确 认</button>
  29. </view>
  30. <!-- <view style="text-align: center; font-size: 13px; color: gray;">已加载全部</view> -->
  31. </view>
  32. </template>
  33. <script setup>
  34. import { ref, reactive } from 'vue'
  35. import { dictObj } from '@/utils/position.js'
  36. const formData = reactive({ positionId: '', payFrom: 0, payTo: 0 })
  37. const form = ref()
  38. const submit = async () => {
  39. const valid = await unref(form).validate()
  40. if (!valid) return
  41. }
  42. const rules = {
  43. positionId:{
  44. rules: [{required: true, errorMessage: '请选择期望岗位' }]
  45. },
  46. payFrom:{
  47. rules: [{required: true, errorMessage: '请输入薪资最低要求' }]
  48. },
  49. payTo:{
  50. rules: [{required: true, errorMessage: '请输入薪资最高要求' }]
  51. },
  52. jobType:{
  53. rules: [{required: true, errorMessage: '请选择求职类型' }]
  54. },
  55. workAreaProvinceId:{
  56. rules: [{required: true, errorMessage: '请选择工作城市' }]
  57. },
  58. }
  59. const payToMin = ref(1)
  60. const payChange = (val) => {
  61. payToMin.value = val
  62. if (val > formData.payTo) formData.payTo = val
  63. }
  64. </script>
  65. <style lang="scss" scoped>
  66. </style>