qiuzhiXinxi.vue 7.6 KB

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