desire.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <template>
  2. <view class="main">
  3. <view class="lav">
  4. <view class="title">{{ item.id ? '编辑' : '添加' }}求职期望</view>
  5. <view class="desc">求职期望的不同,推荐的职位也会不同</view>
  6. </view>
  7. <view class="form_group">
  8. <view class="lable">求职类型</view>
  9. <picker :range="dict.types" @change="picker($event, 'types')">
  10. <input placeholder="请选择求职类型" v-model="item.types" :disabled="true" />
  11. <view class="icon more">&#xe62b;</view>
  12. </picker>
  13. </view>
  14. <view class="form_group">
  15. <view class="lable">工作城市</view>
  16. <picker :disabled="true" @click="go('/pages/job/position/city')">
  17. <input placeholder="请选择工作城市" v-model="item.cityName" :disabled="true" />
  18. <view class="icon more">&#xe62b;</view>
  19. </picker>
  20. </view>
  21. <view class="form_group">
  22. <view class="lable">期望职位</view>
  23. <picker :disabled="true" @click="go('/pages/job/position/classification')">
  24. <input placeholder="请选择期望职位" v-model="item.positionName" :disabled="true" />
  25. <view class="icon more">&#xe62b;</view>
  26. </picker>
  27. </view>
  28. <view class="form_group">
  29. <view class="lable">薪资要求</view>
  30. <multiSelector v-model="item.salary" :range="dict.salary" name="薪资" placeholder="请选择薪资要求"></multiSelector>
  31. </view>
  32. <button class="btn" @click="save()">保存</button>
  33. </view>
  34. </template>
  35. <script>
  36. export default {
  37. data() {
  38. return {
  39. item: {},
  40. dict: {
  41. types: this.util.getData('types'),
  42. salary: [['面议'], ['']]
  43. }
  44. };
  45. },
  46. onLoad(e) {
  47. if (e.item) {
  48. this.item = JSON.parse(e.item);
  49. }
  50. uni.$on('select_city', (res) => {
  51. this.item.cityName = res.title;
  52. this.item.cityId = res.id;
  53. this.$forceUpdate();
  54. });
  55. uni.$on('select_position', (res) => {
  56. this.item.positionName = res.title;
  57. this.item.positionId = res.id;
  58. this.$forceUpdate();
  59. });
  60. },
  61. methods: {
  62. go(url) {
  63. uni.navigateTo({ url: url });
  64. },
  65. picker(e, tag) {
  66. this.item[tag] = this.dict[tag][e.detail.value];
  67. this.$forceUpdate();
  68. },
  69. save() {
  70. let rule = [
  71. { name: 'types', checkType: 'notnull', errorMsg: '请选择求职类型' },
  72. { name: 'cityId', checkType: 'notnull', errorMsg: '请选择工作城市' },
  73. { name: 'positionId', checkType: 'notnull', errorMsg: '请选择期望职位' },
  74. { name: 'salary', checkType: 'notnull', errorMsg: '请选择薪资要求' }
  75. ];
  76. if (!this.verify.check(this.item, rule)) {
  77. uni.showModal({ content: this.verify.error, showCancel: false });
  78. return false;
  79. }
  80. this.http.request({
  81. url: '/app/resume/desire',
  82. data: this.item,
  83. method: 'POST',
  84. success: (res) => {
  85. uni.showToast({ title: '操作成功' });
  86. setTimeout(() => {
  87. uni.$emit('resume');
  88. uni.navigateBack();
  89. }, 1500);
  90. }
  91. });
  92. },
  93. del() {
  94. this.http.request({
  95. url: '/app/resume/desire/delete',
  96. data: { id: this.item.id },
  97. success: (res) => {
  98. uni.showToast({ title: '删除成功' });
  99. setTimeout(() => {
  100. uni.$emit('resume');
  101. uni.navigateBack();
  102. }, 1500);
  103. }
  104. });
  105. }
  106. }
  107. };
  108. </script>
  109. <style lang="scss"></style>