base.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <template>
  2. <view>
  3. <view class="main">
  4. <view class="form_group">
  5. <view class="lable re">头像</view>
  6. <view class="bz">
  7. <text class="icon">&#xe634;</text>
  8. <text>使用真实头像更容易得到HR的青睐</text>
  9. </view>
  10. <avatar v-model="item.avatar" class="avatar"></avatar>
  11. </view>
  12. <view class="form_group">
  13. <view class="lable re">姓名</view>
  14. <input placeholder="请输入姓名" v-model="item.name" />
  15. </view>
  16. <view class="form_group">
  17. <view class="lable re">性别</view>
  18. <picker :range="dict.sex" @change="picker($event, 'sex')">
  19. <input placeholder="请选择性别" v-model="item.sex" :disabled="true" />
  20. <view class="icon more">&#xe62b;</view>
  21. </picker>
  22. </view>
  23. <view class="form_group">
  24. <view class="lable re">出生年月</view>
  25. <multiSelector v-model="item.birthday" :range="dict.birthday" name="出生年月" placeholder="请选择出生年月"></multiSelector>
  26. </view>
  27. <view class="form_group">
  28. <view class="lable">最高学历</view>
  29. <picker :range="dict.qualification" @change="picker($event, 'qualification')">
  30. <input placeholder="请选择学历" v-model="item.qualification" :disabled="true" />
  31. <view class="icon more">&#xe62b;</view>
  32. </picker>
  33. </view>
  34. <view class="form_group">
  35. <view class="lable re">参加工作时间</view>
  36. <picker mode="date" fields="month" :end="end" @change="picker($event, 'joinDate')">
  37. <input placeholder="请选择参加工作时间" v-model="item.joinDate" :disabled="true" />
  38. <view class="icon more">&#xe62b;</view>
  39. </picker>
  40. </view>
  41. <view class="form_group">
  42. <view class="lable re">手机号</view>
  43. <input type="number" placeholder="请输入手机号" v-model="item.phone" />
  44. </view>
  45. <view class="form_group">
  46. <view class="lable re">邮箱</view>
  47. <input placeholder="请输入邮箱" v-model="item.email" />
  48. </view>
  49. <button class="btn" @click="save()">保存</button>
  50. </view>
  51. </view>
  52. </template>
  53. <script>
  54. export default {
  55. data() {
  56. return {
  57. item: {},
  58. end: this.util.getDate('day'),
  59. dict: {
  60. sex: this.util.getData('sex'),
  61. qualification: this.util.getData('qualification'),
  62. birthday: [[], []]
  63. }
  64. };
  65. },
  66. onLoad(e) {
  67. if (e.item) {
  68. this.item = JSON.parse(e.item);
  69. }
  70. },
  71. methods: {
  72. picker(e, tag) {
  73. if (tag == 'joinDate' || tag == 'birthday') {
  74. this.item[tag] = e.detail.value;
  75. } else {
  76. this.item[tag] = this.dict[tag][e.detail.value];
  77. }
  78. this.$forceUpdate();
  79. },
  80. save() {
  81. let rule = [
  82. { name: 'avatar', checkType: 'notnull', errorMsg: '请上传头像' },
  83. { name: 'name', checkType: 'notnull', errorMsg: '请输入姓名' },
  84. { name: 'sex', checkType: 'notnull', errorMsg: '请上选择性别' },
  85. { name: 'birthday', checkType: 'notnull', errorMsg: '请选择出生年月' },
  86. { name: 'qualification', checkType: 'notnull', errorMsg: '请选择最高学历' },
  87. { name: 'joinDate', checkType: 'notnull', errorMsg: '请选择参加工作时间' },
  88. { name: 'phone', checkType: 'phone', errorMsg: '请输入正确的手机号' },
  89. { name: 'email', checkType: 'email', errorMsg: '请输入正确的邮箱' }
  90. ];
  91. if (!this.verify.check(this.item, rule)) {
  92. uni.showModal({ content: this.verify.error, showCancel: false });
  93. return false;
  94. }
  95. this.http.request({
  96. url: '/app/resume/base',
  97. data: this.item,
  98. method: 'POST',
  99. success: (res) => {
  100. uni.showToast({ title: '操作成功' });
  101. setTimeout(() => {
  102. uni.$emit('resume');
  103. uni.navigateBack();
  104. }, 1500);
  105. }
  106. });
  107. }
  108. }
  109. };
  110. </script>
  111. <style lang="scss"></style>