qiuzhiXinxi.vue 7.2 KB

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