index.vue 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382
  1. <template>
  2. <div class="join-us">
  3. <form action="/" method="post">
  4. <div class="form">
  5. <div class="form-group">
  6. <div>
  7. <div class="form-item">
  8. <div class="form-label">应聘职位:</div>
  9. <input type="text" class="form-control input" />
  10. </div>
  11. <div class="form-item">
  12. <div class="form-label">姓名:</div>
  13. <input type="text" class="form-control input" />
  14. </div>
  15. <div class="form-group min-width">
  16. <div class="form-item">
  17. <div class="form-label">性别:</div>
  18. <input type="text" class="form-control input" />
  19. </div>
  20. <div class="form-item">
  21. <div class="form-label">年龄:</div>
  22. <input type="text" class="form-control input" />
  23. </div>
  24. </div>
  25. </div>
  26. <div class="avatar">
  27. <div class="form-label only-mobile">性别:</div>
  28. <div class="avatar-choose" @click="onChooseFile">
  29. <span v-if="!avatar" class="icon">+</span>
  30. <span v-if="!avatar">照片</span>
  31. <img :src="avatar" v-else />
  32. </div>
  33. <input ref="file" type="file" v-show="false" accept=".png,.jpg" @change="onFileChange" />
  34. </div>
  35. </div>
  36. <div class="form-group">
  37. <div class="form-item">
  38. <div class="form-label">婚姻状况:</div>
  39. <input type="text" class="form-control input" />
  40. </div>
  41. <div class="form-item">
  42. <div class="form-label">出生年月:</div>
  43. <input type="text" class="form-control input" />
  44. </div>
  45. </div>
  46. <div class="form-group">
  47. <div class="form-item">
  48. <div class="form-label">毕业院校:</div>
  49. <input type="text" class="form-control input" />
  50. </div>
  51. <div class="form-item">
  52. <div class="form-label">最高学历:</div>
  53. <input type="text" class="form-control input" />
  54. </div>
  55. </div>
  56. <div class="form-group">
  57. <div class="form-item">
  58. <div class="form-label">所选专业:</div>
  59. <input type="text" class="form-control input" />
  60. </div>
  61. <div class="form-item">
  62. <div class="form-label">毕业时间:</div>
  63. <input type="text" class="form-control input" />
  64. </div>
  65. </div>
  66. <div class="form-item">
  67. <div class="form-label">户籍所在地:</div>
  68. <input type="text" class="form-control input" />
  69. </div>
  70. <div class="form-item">
  71. <div class="form-label">教育经历:</div>
  72. <textarea class="form-control textarea"></textarea>
  73. </div>
  74. <div class="form-item">
  75. <div class="form-label">工作经历:</div>
  76. <textarea class="form-control textarea"></textarea>
  77. </div>
  78. <div class="form-item">
  79. <div class="form-label">自我介绍:</div>
  80. <textarea class="form-control textarea"></textarea>
  81. </div>
  82. <div class="form-item">
  83. <div class="form-label">求职意向:</div>
  84. <textarea class="form-control textarea"></textarea>
  85. </div>
  86. <div class="form-item">
  87. <div class="form-label">所在区域:</div>
  88. <input type="text" class="form-control input" />
  89. </div>
  90. <div class="form-item">
  91. <div class="form-label">联系地址:</div>
  92. <input type="text" class="form-control input" />
  93. </div>
  94. <div class="form-group">
  95. <div class="form-item">
  96. <div class="form-label">联系电话:</div>
  97. <input type="text" class="form-control input" />
  98. </div>
  99. <div class="form-item">
  100. <div class="form-label">QQ:</div>
  101. <input type="text" class="form-control input" />
  102. </div>
  103. </div>
  104. <div class="form-group">
  105. <div class="form-item">
  106. <div class="form-label">电子邮箱:</div>
  107. <input type="text" class="form-control input" />
  108. </div>
  109. <div class="form-item">
  110. <div class="form-label">期望薪资:</div>
  111. <input type="text" class="form-control input" />
  112. </div>
  113. </div>
  114. </div>
  115. <button type="submit" class="submit">提交</button>
  116. </form>
  117. </div>
  118. </template>
  119. <script>
  120. export default {
  121. data() {
  122. return {
  123. avatar: '',
  124. }
  125. },
  126. methods: {
  127. onChooseFile() {
  128. console.dir(this.$refs.file)
  129. this.$refs.file.click()
  130. },
  131. onFileChange(e) {
  132. const file = e.target.files[0]
  133. if (!file) return
  134. this.avatar = URL.createObjectURL(file)
  135. },
  136. },
  137. }
  138. </script>
  139. <style scoped lang="scss">
  140. @media screen and (min-width: 768px) {
  141. .join-us {
  142. .form {
  143. .form-group {
  144. display: flex;
  145. justify-content: space-between;
  146. & > div {
  147. flex: 1;
  148. width: 50%;
  149. flex-shrink: 0;
  150. }
  151. &.min-width {
  152. .form-control {
  153. width: 180px;
  154. }
  155. .form-item:nth-child(2) {
  156. .form-label {
  157. width: 120px;
  158. }
  159. }
  160. }
  161. }
  162. .avatar {
  163. position: relative;
  164. .avatar-choose {
  165. position: absolute;
  166. right: 0;
  167. bottom: 26px;
  168. width: 188px;
  169. height: 224px;
  170. border: 1px solid #201405;
  171. display: flex;
  172. justify-content: center;
  173. align-items: center;
  174. font-size: 25px;
  175. font-weight: 400;
  176. color: #000000;
  177. cursor: pointer;
  178. img {
  179. display: block;
  180. width: 100%;
  181. height: 100%;
  182. object-fit: contain;
  183. }
  184. }
  185. }
  186. .form-item {
  187. display: flex;
  188. align-items: center;
  189. margin-bottom: 26px;
  190. &.vertical {
  191. display: block;
  192. .form-control {
  193. margin-top: 24px;
  194. }
  195. }
  196. .form-label {
  197. font-size: 25px;
  198. font-weight: 400;
  199. color: #000000;
  200. width: 150px;
  201. text-align: right;
  202. flex-shrink: 0;
  203. }
  204. .form-control {
  205. flex: 1;
  206. &.input {
  207. height: 54px;
  208. line-height: 52px;
  209. border: 1px solid #000000;
  210. box-sizing: border-box;
  211. padding: 0 16px;
  212. }
  213. &.textarea {
  214. display: block;
  215. width: 100%;
  216. height: 180px;
  217. padding: 16px;
  218. line-height: 24px;
  219. }
  220. label {
  221. display: inline-block;
  222. font-size: 25px;
  223. font-weight: 400;
  224. color: #000000;
  225. margin-right: 120px;
  226. margin-top: 24px;
  227. input {
  228. margin-left: 16px;
  229. transform: scale(1.4);
  230. }
  231. }
  232. }
  233. }
  234. }
  235. .submit {
  236. display: block;
  237. width: 189px;
  238. height: 38px;
  239. background: #f3920d;
  240. border-radius: 19px;
  241. font-size: 25px;
  242. font-weight: 400;
  243. color: #000000;
  244. line-height: 38px;
  245. text-align: center;
  246. border: 0;
  247. margin: 44px auto 0;
  248. cursor: pointer;
  249. }
  250. }
  251. }
  252. @media screen and (max-width: 768px) {
  253. .join-us {
  254. width: 6.86rem;
  255. margin: 0 auto;
  256. .form {
  257. .fl,
  258. .fr {
  259. float: unset !important;
  260. }
  261. .avatar {
  262. margin-bottom: 0.26rem;
  263. .form-label {
  264. font-size: 0.28rem;
  265. font-weight: 400;
  266. color: #000000;
  267. margin-bottom: 0.16rem;
  268. }
  269. .avatar-choose {
  270. width: 2.6rem;
  271. height: 2.6rem;
  272. border: 0.01rem solid #b2b2b2;
  273. display: flex;
  274. justify-content: center;
  275. flex-direction: column;
  276. align-items: center;
  277. font-size: 0.28rem;
  278. font-weight: 400;
  279. color: #b2b2b2;
  280. cursor: pointer;
  281. .icon {
  282. font-size: 0.72rem;
  283. font-weight: lighter;
  284. margin-bottom: 0.16rem;
  285. }
  286. img {
  287. display: block;
  288. width: 100%;
  289. height: 100%;
  290. object-fit: contain;
  291. }
  292. }
  293. }
  294. .form-item {
  295. margin-bottom: 0.26rem;
  296. .form-label {
  297. font-size: 0.28rem;
  298. font-weight: 400;
  299. color: #000000;
  300. margin-bottom: 0.16rem;
  301. }
  302. .form-control {
  303. &.input {
  304. width: 100%;
  305. height: 0.9rem;
  306. line-height: 0.88rem;
  307. border: 0.01rem solid #b2b2b2;
  308. box-sizing: border-box;
  309. padding: 0 0.16rem;
  310. }
  311. &.textarea {
  312. display: block;
  313. width: 100%;
  314. height: 3.5rem;
  315. padding: 16px;
  316. line-height: 0.32rem;
  317. box-sizing: border-box;
  318. border-color: #b2b2b2;
  319. }
  320. &.checkbox-group {
  321. display: flex;
  322. flex-wrap: wrap;
  323. justify-content: space-between;
  324. label {
  325. display: flex;
  326. flex-direction: row-reverse;
  327. justify-content: flex-end;
  328. font-size: 0.28rem;
  329. font-weight: 400;
  330. color: #000000;
  331. margin-top: 0.35rem;
  332. width: 50%;
  333. input {
  334. margin-right: 0.16rem;
  335. }
  336. }
  337. }
  338. }
  339. }
  340. }
  341. .submit {
  342. display: block;
  343. width: 3.5rem;
  344. height: 0.9rem;
  345. background: #f3920d;
  346. font-size: 0.28rem;
  347. font-weight: 400;
  348. color: #000000;
  349. line-height: 0.9rem;
  350. text-align: center;
  351. border: 0;
  352. margin: 0.9rem auto 0;
  353. cursor: pointer;
  354. }
  355. }
  356. }
  357. </style>