answer_base.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. <van-cell-group>
  2. <van-field
  3. v-model="answer.name"
  4. label="姓名"
  5. placeholder="请输入姓名"
  6. required
  7. ></van-field>
  8. <van-field
  9. v-model="answer.mobile"
  10. label="手机号"
  11. placeholder="请输入手机号"
  12. required
  13. ></van-field>
  14. <van-field
  15. v-model="answer.sex"
  16. label="性别"
  17. placeholder="请选择性别"
  18. is-link
  19. readonly
  20. required
  21. @click="showSex = true"
  22. ></van-field>
  23. <van-popup v-model:show="showSex" round position="bottom">
  24. <van-picker
  25. :columns="sex_list"
  26. @cancel="showSex = false"
  27. @confirm="onSexConfirm"
  28. ></van-picker>
  29. </van-popup>
  30. <van-field
  31. v-model="answer.age"
  32. label="年龄"
  33. placeholder="请输入年龄"
  34. required
  35. ></van-field>
  36. <van-field
  37. v-model="answer.marry"
  38. label="婚姻状况"
  39. placeholder="请选择婚姻状况"
  40. is-link
  41. readonly
  42. required
  43. @click="showMarry = true"
  44. ></van-field>
  45. <van-popup v-model:show="showMarry" round position="bottom">
  46. <van-picker
  47. :columns="marry_list"
  48. @cancel="showMarry = false"
  49. @confirm="onMarryConfirm"
  50. ></van-picker>
  51. </van-popup>
  52. <van-field
  53. v-model="answer.education"
  54. label="学历"
  55. placeholder="请选择学历"
  56. is-link
  57. readonly
  58. required
  59. @click="showEducation = true"
  60. ></van-field>
  61. <van-popup v-model:show="showEducation" round position="bottom">
  62. <van-picker
  63. :columns="education_list"
  64. @cancel="showEducation = false"
  65. @confirm="onEducationConfirm"
  66. ></van-picker>
  67. </van-popup>
  68. <van-field
  69. v-model="answer.major"
  70. label="所修专业"
  71. placeholder="若有多个学历,以最高学历专业为准"
  72. required
  73. ></van-field>
  74. <van-field
  75. v-model="answer.seniority"
  76. label="工龄"
  77. placeholder="累计工作年限"
  78. required
  79. >
  80. <template #right-icon>年</template>
  81. </van-field>
  82. <van-field
  83. v-model="answer.leader"
  84. label="担任领导的累计年限"
  85. placeholder="含各类、各级领导职务"
  86. required
  87. label-align="top"
  88. >
  89. <template #right-icon>年</template>
  90. </van-field>
  91. <van-field
  92. v-model="answer.industry"
  93. label="所在行业"
  94. placeholder="所在行业"
  95. required
  96. ></van-field>
  97. <van-field
  98. v-model="answer.company"
  99. label="单位性质"
  100. placeholder="请选择所在单位性质"
  101. is-link
  102. readonly
  103. required
  104. @click="showCompany = true"
  105. ></van-field>
  106. <van-popup v-model:show="showCompany" round position="bottom">
  107. <van-picker
  108. :columns="company_list"
  109. @cancel="showCompany = false"
  110. @confirm="onCompanyConfirm"
  111. ></van-picker>
  112. </van-popup>
  113. <van-field
  114. v-model="answer.company_text"
  115. :label="company_title"
  116. :placeholder="company_placeholder"
  117. required
  118. v-show="showCompanyText"
  119. ></van-field>
  120. <van-field
  121. v-model="answer.job"
  122. label="职位"
  123. placeholder="请选择职位"
  124. is-link
  125. readonly
  126. required
  127. @click="showJob = true"
  128. v-show="showJobField"
  129. ></van-field>
  130. <van-popup v-model:show="showJob" round position="bottom">
  131. <van-picker
  132. :columns="job_list"
  133. @cancel="showJob = false"
  134. @confirm="onJobConfirm"
  135. ></van-picker>
  136. </van-popup>
  137. <van-field
  138. v-model="answer.job_text"
  139. label="具体职位"
  140. placeholder="请注明具体职位"
  141. required
  142. v-show="showJobText"
  143. ></van-field>
  144. </van-cell-group>
  145. <div style="margin: 16px;">
  146. <van-button block type="primary" size="large" @click="baseSubmit">
  147. 下一步
  148. </van-button>
  149. </div>
  150. <script>
  151. function answer_base() {
  152. let base = {};
  153. base.answer = Vue.ref({});
  154. //年龄
  155. base.sex_list = [
  156. {text: '男', value: '男'},
  157. {text: '女', value: '女'},
  158. ];
  159. base.showSex = Vue.ref(false);
  160. base.onSexConfirm = ({selectedValues}) => {
  161. base.answer.value.sex = selectedValues[0];
  162. base.showSex.value = false;
  163. };
  164. //婚姻状况
  165. base.marry_list = [
  166. {text: '单身/未婚', value: '单身/未婚'},
  167. {text: '已婚', value: '已婚'},
  168. {text: '离婚', value: '离婚'},
  169. ];
  170. base.showMarry = Vue.ref(false);
  171. base.onMarryConfirm = ({selectedValues}) => {
  172. base.answer.value.marry = selectedValues[0];
  173. base.showMarry.value = false;
  174. };
  175. //学历
  176. base.education_list = [
  177. {text: '初中及以下', value: '初中及以下'},
  178. {text: '高中/职校/中专', value: '高中/职校/中专'},
  179. {text: '大专', value: '大专'},
  180. {text: '本科', value: '本科'},
  181. {text: '硕士', value: '硕士'},
  182. {text: '博士', value: '博士'},
  183. ];
  184. base.showEducation = Vue.ref(false);
  185. base.onEducationConfirm = ({selectedValues}) => {
  186. base.answer.value.education = selectedValues[0];
  187. base.showEducation.value = false;
  188. };
  189. //单位
  190. base.company_list = [
  191. {text: '党政机关', value: '党政机关'},
  192. {text: '事业单位', value: '事业单位'},
  193. {text: '国有企业', value: '国有企业'},
  194. {text: '民营企业', value: '民营企业'},
  195. {text: '外商独资企业', value: '外商独资企业'},
  196. {text: '合资/合作企业', value: '合资/合作企业'},
  197. {text: '股份制(所有权混合)企业', value: '股份制(所有权混合)企业'},
  198. {text: '个体工商户', value: '个体工商户'},
  199. {text: '社会团体/行业组织', value: '社会团体/行业组织'},
  200. {text: '其他', value: '其他'},
  201. ];
  202. base.showCompany = Vue.ref(false);
  203. base.showCompanyText = Vue.ref(false);
  204. base.onCompanyConfirm = ({selectedValues}) => {
  205. if (selectedValues[0] == '党政机关') {
  206. base.company_title.value = '具体部门'
  207. base.company_placeholder.value = '党政机关的具体部门'
  208. base.showCompanyText.value = true;
  209. base.showJobField.value = true;
  210. base.job_list.value = base.job_list_1;
  211. } else if (selectedValues[0] == '事业单位') {
  212. base.company_title.value = '具体领域'
  213. base.company_placeholder.value = '事业单位的具体领域'
  214. base.showCompanyText.value = true;
  215. base.showJobField.value = true;
  216. base.job_list.value = base.job_list_1;
  217. } else if (selectedValues[0] == '其他') {
  218. base.company_title.value = '单位补充'
  219. base.company_placeholder.value = '请填写单位的性质'
  220. base.showCompanyText.value = true;
  221. base.showJobField.value = false;
  222. } else {
  223. base.job_list.value = base.job_list_2;
  224. base.showCompanyText.value = false;
  225. base.showJobField.value = true;
  226. }
  227. base.answer.value.job = '';
  228. base.answer.value.job_text = '';
  229. base.showJobText.value = false;
  230. base.answer.value.company = selectedValues[0];
  231. base.answer.value.company_text = '';
  232. base.showCompany.value = false;
  233. };
  234. base.company_title = Vue.ref('');
  235. base.company_placeholder = Vue.ref('');
  236. //职位
  237. base.job_list_1 = [
  238. {text: '省/部级(含副省/部级)', value: '省/部级(含副省/部级)'},
  239. {text: '厅/局/司级(含副厅/局/司级)', value: '厅/局/司级(含副厅/局/司级)'},
  240. {text: '处级(含副处级)', value: '处级(含副处级)'},
  241. {text: '科级(含副科级)', value: '科级(含副科级)'},
  242. {text: '一般工作人员', value: '一般工作人员'},
  243. {text: '其他', value: '其他'},
  244. ];
  245. base.job_list_2 = [
  246. {text: '老总(含董事级成员)', value: '老总(含董事级成员)'},
  247. {text: '高层管理者', value: '高层管理者'},
  248. {text: '中层管理者', value: '中层管理者'},
  249. {text: '一线(基层)管理者', value: '一线(基层)管理者'},
  250. {text: '一般职员', value: '一般职员'},
  251. {text: '其他', value: '其他'},
  252. ];
  253. base.job_list = Vue.ref([]);
  254. base.showJob = Vue.ref(false);
  255. base.showJobField = Vue.ref(false);
  256. base.showJobText = Vue.ref(false);
  257. base.onJobConfirm = ({selectedValues}) => {
  258. base.answer.value.job = selectedValues[0];
  259. base.answer.value.job_text = '';
  260. base.showJob.value = false;
  261. if (selectedValues[0] == '其他') {
  262. base.showJobText.value = true;
  263. } else {
  264. base.showJobText.value = false;
  265. }
  266. };
  267. base.baseSubmit = () => {
  268. const required_field = [
  269. {field:'name',tip:'请输入姓名'},
  270. {field:'mobile',tip:'请输入手机号'},
  271. {field:'sex',tip:'请选择性别'},
  272. {field:'age',tip:'请输入年龄'},
  273. {field:'marry',tip:'请选择婚姻状况'},
  274. {field:'education',tip:'请选择学历'},
  275. {field:'major',tip:'请输入所修专业'},
  276. {field:'seniority',tip:'请输入工龄'},
  277. {field:'leader',tip:'请输入担任领导的累计年限'},
  278. {field:'industry',tip:'请输入所在行业'},
  279. {field:'company',tip:'请选择单位性质'},
  280. ];
  281. for (let item of required_field) {
  282. if (base.answer.value[item.field] === undefined || base.answer.value[item.field] === '') {
  283. vant.showToast(item.tip);
  284. return false;
  285. }
  286. }
  287. if (base.answer.value.company == '党政机关') {
  288. if (base.answer.value.company_text === undefined || base.answer.value.company_text === '') {
  289. vant.showToast('请输入具体部门');
  290. return false;
  291. }
  292. if (base.answer.value.job === undefined || base.answer.value.job === '') {
  293. vant.showToast('请选择职位');
  294. return false;
  295. } else {
  296. if (base.answer.value.job == '其他') {
  297. if (base.answer.value.job_text === undefined || base.answer.value.job_text === '') {
  298. vant.showToast('请输入具体职位');
  299. return false;
  300. }
  301. }
  302. }
  303. }
  304. if (base.answer.value.company == '事业单位') {
  305. if (base.answer.value.company_text === undefined || base.answer.value.company_text === '') {
  306. vant.showToast('请输入具体领域');
  307. return false;
  308. }
  309. if (base.answer.value.job === undefined || base.answer.value.job === '') {
  310. vant.showToast('请选择职位');
  311. return false;
  312. } else {
  313. if (base.answer.value.job == '其他') {
  314. if (base.answer.value.job_text === undefined || base.answer.value.job_text === '') {
  315. vant.showToast('请输入具体职位');
  316. return false;
  317. }
  318. }
  319. }
  320. }
  321. if (base.answer.value.company == '其他') {
  322. if (base.answer.value.company_text === undefined || base.answer.value.company_text === '') {
  323. vant.showToast('请输入单位补充');
  324. return false;
  325. }
  326. }
  327. base.active.value = 1;
  328. }
  329. return base;
  330. }
  331. </script>