qiuzhiXinxi.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. <template>
  2. <view class="jz-content-box">
  3. <view class="form-label-radio form-top-margin flex-start-row">
  4. <view class="phone-form-label"> <text class="form-label-require">*</text>类型</view>
  5. <dataChecked :list="typeList" mode="multiple" :defaultCount="9" @change="selectChangeType" @add="addType" />
  6. </view>
  7. <view class="form-label-select">
  8. <view class="phone-form-label"><text class="form-label-require">*</text>经验</view>
  9. <picker :range="jingyanList" mode='selector' :value="jingyanIndex" range-key="name" @change="jingyanChange"
  10. @cancel="jingyanCancel">
  11. <view class="form-radio-select">
  12. <view>{{ jingyan }}</view>
  13. <icon></icon>
  14. </view>
  15. </picker>
  16. </view>
  17. <view class="form-label-radio flex-start-row">
  18. <view class="phone-form-label"><text class="form-label-require">*</text>技能</view>
  19. <dataChecked :list="skillList" mode="multiple" :defaultCount="9" @change="selectChangeSkill"
  20. @add="addSkill" />
  21. </view>
  22. <view class="form-label-radio form-top-margin flex-start-row">
  23. <view class="phone-form-label"><text class="form-label-require">*</text>状态</view>
  24. <dataChecked :list="zhuangtaiList" mode="single" :showAdd="false" @change="selectChangeZhuangtai" />
  25. </view>
  26. <view class="form-label-select">
  27. <view class="phone-form-label"><text class="form-label-require"></text>薪资级别</view>
  28. <picker :range="xinziJibieList" mode='selector' @change="xinziJibieChange" @cancel="xinziJibieCancel">
  29. <view class="form-radio-select">
  30. <view>{{jibiexinzi}}</view>
  31. <icon></icon>
  32. </view>
  33. </picker>
  34. </view>
  35. <view class="form-label-input">
  36. <view class="phone-form-label"><text class="form-label-require"></text>期望薪资</view>
  37. <input v-model="qiwangxinzi" placeholder="请输入期望薪资" />
  38. </view>
  39. <view class="form-label-input">
  40. <view class="phone-form-label"><text class="form-label-require"></text>工作经历</view>
  41. <input v-model="jingli" placeholder="请填写工作经历" />
  42. </view>
  43. <view class="page-btn-box">
  44. <button type="default" v-if="status =='add'" @click="goNext" class="phone-green-btn">下一步</button>
  45. <button type="default" v-if="status =='edit'" @click="editSave" class="phone-green-btn">保存</button>
  46. </view>
  47. </view>
  48. </template>
  49. <script>
  50. import dataChecked from './common/dataChecked.vue';
  51. import {
  52. getJiazhengLeixing,
  53. getJiazhengJineng,
  54. getJiazhengZhuangtai,
  55. } from "@/api/jiazheng.js";
  56. export default {
  57. components: {
  58. dataChecked
  59. },
  60. // onLoad 是 uni-app 的页面生命周期钩子,不需要导入
  61. created() {
  62. this.getLeixing()
  63. this.getJineng()
  64. this.getZhuangtai()
  65. },
  66. props: {
  67. status: {
  68. type: String,
  69. }
  70. },
  71. data() {
  72. return {
  73. formData: {},
  74. // 从后端获取的技能列表
  75. skillList: [],
  76. typeList: [],
  77. leixing: "",
  78. jineng: "",
  79. zhuangtaiList: [],
  80. zhuangtai: '',
  81. jingyan: "",
  82. jingyanIndex: 0,
  83. qiwangxinzi: '面议',
  84. jingli: '',
  85. xinziJibieList: ["一级", "二级", "三级", "四级", "五级", ],
  86. jibiexinzi: "",
  87. jingyanList: Array.from({
  88. length: 51
  89. }, (_, i) => i + '年'),
  90. };
  91. },
  92. methods: {
  93. // 点击完成按钮的时候触发,
  94. xinziJibieChange(e) {
  95. //通过e.detail.value获取值,获取的是自定义数据的下标
  96. const index = e.detail.value
  97. this.jibiexinzi = this.xinziJibieList[index]
  98. console.log('jibiexinzi', this.jibiexinzi);
  99. },
  100. xinziJibieCancel(e) {
  101. console.log("您已取消选择");
  102. },
  103. jingyanChange(e) {
  104. const index = e.detail.value
  105. this.jingyan = this.jingyanList[index]
  106. },
  107. jingyanCancel() {
  108. this.jingyanIndex = 0
  109. },
  110. getLeixing() {
  111. getJiazhengLeixing({}).then(res => {
  112. this.skillList = this.dataConversionObject(res.data)
  113. console.log('this.skillList', this.skillList);
  114. }).catch(error => {
  115. console.error('获取技能类型失败:', error);
  116. });
  117. },
  118. getJineng() {
  119. getJiazhengJineng({}).then(res => {
  120. this.typeList = this.dataConversionObject(res.data)
  121. console.log('this.typeList', this.typeList);
  122. }).catch(error => {
  123. console.error('获取技能类型失败:', error);
  124. });
  125. },
  126. getZhuangtai() {
  127. getJiazhengZhuangtai({}).then(res => {
  128. console.log('res', res);
  129. this.zhuangtaiList = res.data
  130. // this.typeList = this.dataConversionObject(res.data)
  131. // console.log('this.typeList', this.typeList);
  132. }).catch(error => {
  133. console.error('获取技能类型失败:', error);
  134. });
  135. },
  136. dataConversionObject(data) {
  137. let newList
  138. newList = data.map((name, index) => ({
  139. id: index,
  140. name: name
  141. }));
  142. return newList
  143. },
  144. dataConversionArray(data) {
  145. let newList
  146. newList = data.map((item, index) => {
  147. return item.name
  148. });
  149. return newList
  150. },
  151. selectChangeType(data) {
  152. // console.log('typeData', data);
  153. this.leixing = this.dataConversionArray(data).join(',')
  154. console.log('this.leixing', this.leixing);
  155. },
  156. addType(newType) {
  157. this.typeList.push({
  158. ...newType,
  159. });
  160. },
  161. selectChangeSkill(data) {
  162. this.jineng = this.dataConversionArray(data).join(',')
  163. console.log('this.jineng', this.jineng);
  164. },
  165. addSkill(newSkill) {
  166. this.skillList.push({
  167. ...newSkill,
  168. });
  169. },
  170. selectChangeZhuangtai(data) {
  171. console.log('zhuangtaiData', data);
  172. this.zhuangtai = data[0].id
  173. console.log('zhuangtai', this.zhuangtai);
  174. // const index = e.detail.value
  175. // this.jingyan = this.jingyanList[index]
  176. },
  177. showAlert() {
  178. uni.showToast({
  179. title: "请勾选本人同意!",
  180. icon: 'none',
  181. duration: 2000
  182. })
  183. return false
  184. },
  185. yanzheng() {
  186. this.formData = {
  187. leixing: this.leixing,
  188. jingyan: this.jingyan,
  189. jineng: this.jineng,
  190. zhuangtai: this.zhuangtai,
  191. jibiexinzi: this.jibiexinzi,
  192. qiwangxinzi: this.qiwangxinzi,
  193. jingli: this.jingli,
  194. }
  195. if (!this.formData.leixing) {
  196. uni.showToast({
  197. title: "请选择类型!",
  198. icon: 'none',
  199. duration: 2000
  200. })
  201. return false
  202. }
  203. if (!this.formData.jingyan) {
  204. uni.showToast({
  205. title: "请选择经验年限!",
  206. icon: 'none',
  207. duration: 2000
  208. })
  209. return false
  210. }
  211. if (!this.formData.jineng) {
  212. uni.showToast({
  213. title: "请选择相应技能!",
  214. icon: 'none',
  215. duration: 2000
  216. })
  217. return false
  218. }
  219. if (!this.formData.zhuangtai) {
  220. uni.showToast({
  221. title: "请选择相应状态!",
  222. icon: 'none',
  223. duration: 2000
  224. })
  225. return false
  226. }
  227. return true
  228. },
  229. goNext() {
  230. let ispass = this.yanzheng()
  231. if (ispass) {
  232. this.$emit('goNext', this.formData, 1);
  233. }
  234. },
  235. editSave() {
  236. let ispass = this.yanzheng()
  237. if (ispass) {
  238. this.$emit('editSave', this.formData);
  239. }
  240. }
  241. }
  242. };
  243. </script>