joinPerson.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645
  1. <template>
  2. <view class="content">
  3. <view class="" v-if="state == 0 || state == 2">
  4. <view class="top hflex acenter" v-if="state == 2">
  5. <image src="https://ship.shipcc.cn/common/person.png" class="top_img"></image>
  6. <view class="top_text">你已成功加入人才库</view>
  7. </view>
  8. <view class="box" style="margin-top: 20rpx;">
  9. <view class="box_title">基本信息</view>
  10. <view class="hflex acenter jbetween cell">
  11. <view class="left" :class="state != 2 ? 'required' : ''">姓名</view>
  12. <view class="left" v-if="state == 2">{{userInfo.name}}</view>
  13. <u-input v-model="userInfo.name" v-if="state != 2" placeholder="请输入您的姓名" inputAlign="right" border="none"></u-input>
  14. </view>
  15. <picker @change="bindSexChange" :value="index" :range="sexList" :disabled="state == 2 ? true: false">
  16. <view class="hflex acenter jbetween cell">
  17. <view class="left " :class="state != 2 ? 'required' : ''">性别</view>
  18. <view class="left" v-if="state == 2">{{userInfo.sex}}</view>
  19. <u-input border="none" v-model="userInfo.sex" v-if="state != 2" disabled disabledColor="#fff" placeholder="请选择您的性别" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
  20. </view>
  21. </picker>
  22. <picker @change="bindAgeChange" :value="index" :range="ageList" :disabled="state == 2 ? true: false">
  23. <view class="hflex acenter jbetween cell">
  24. <view class="left " :class="state != 2 ? 'required' : ''">年龄</view>
  25. <view class="left" v-if="state == 2">{{userInfo.age}}</view>
  26. <u-input border="none" v-model="userInfo.age" v-if="state != 2" disabled disabledColor="#fff" placeholder="请选择您的年龄" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
  27. </view>
  28. </picker>
  29. <view class="hflex acenter jbetween cell">
  30. <view class="left " :class="state != 2 ? 'required' : ''">籍贯</view>
  31. <view class="left" v-if="state == 2">{{userInfo.place}}</view>
  32. <u-input v-model="userInfo.place" v-if="state != 2" placeholder="请输入您的籍贯" inputAlign="right" border="none"></u-input>
  33. </view>
  34. <view class="hflex acenter jbetween cell">
  35. <view class="left " :class="state != 2 ? 'required' : ''">电话</view>
  36. <view class="left" v-if="state == 2">{{userInfo.phone}}</view>
  37. <u-input v-model="userInfo.phone" v-if="state != 2" placeholder="请输入您的电话" inputAlign="right" border="none"></u-input>
  38. </view>
  39. <view class="hflex acenter jbetween cell">
  40. <view class="left " :class="state != 2 ? 'required' : ''">邮箱</view>
  41. <view class="left" v-if="state == 2">{{userInfo.email}}</view>
  42. <u-input v-model="userInfo.email" v-if="state != 2" placeholder="请输入您的邮箱" inputAlign="right" border="none"></u-input>
  43. </view>
  44. <picker mode="region" @change="changeAddress" :value="index" :disabled="state == 2 ? true: false">
  45. <view class="hflex acenter jbetween cell">
  46. <view class="left " :class="state != 2 ? 'required' : ''">所在地区</view>
  47. <view class="left" v-if="state == 2">{{userInfo.region}}</view>
  48. <u-input border="none" v-if="state != 2" inputAlign="right" disabled disabledColor="#fff" v-model="userInfo.region" placeholder="请选择省市区" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7"></u-input>
  49. </view>
  50. </picker>
  51. <view class="hflex acenter jbetween cell">
  52. <view class="left " :class="state != 2 ? 'required' : ''">详细地址</view>
  53. <view class="left" v-if="state == 2">{{userInfo.address}}</view>
  54. <u-input v-model="userInfo.address" v-if="state != 2" placeholder="街道,楼牌号等" inputAlign="right" border="none"></u-input>
  55. </view>
  56. <view class="hflex acenter jbetween cell">
  57. <view class="left " :class="state != 2 ? 'required' : ''">毕业院校</view>
  58. <view class="left" v-if="state == 2">{{userInfo.school}}</view>
  59. <u-input v-model="userInfo.school" v-if="state != 2" placeholder="请输入您的毕业院校" inputAlign="right" border="none"></u-input>
  60. </view>
  61. <picker @change="bindEduChange" :value="index" :range="educationList" :disabled="state == 2 ? true: false">
  62. <view class="hflex acenter jbetween cell">
  63. <view class="left " :class="state != 2 ? 'required' : ''">学历</view>
  64. <view class="left" v-if="state == 2">{{userInfo.education}}</view>
  65. <u-input border="none" v-if="state != 2" v-model="userInfo.education" disabled disabledColor="#fff" placeholder="请选择您的学历" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
  66. </view>
  67. </picker>
  68. <view class="hflex acenter jbetween cell">
  69. <view class="left " :class="state != 2 ? 'required' : ''">专业</view>
  70. <view class="left" v-if="state == 2">{{userInfo.major}}</view>
  71. <u-input v-model="userInfo.major" v-if="state != 2" placeholder="请输入您的专业" inputAlign="right" border="none"></u-input>
  72. </view>
  73. <view class="hflex acenter jbetween cell">
  74. <view class="left " :class="state != 2 ? 'required' : ''">工作年限</view>
  75. <view class="left" v-if="state == 2">{{userInfo.year}}</view>
  76. <u-input v-model="userInfo.year" v-if="state != 2" placeholder="请输入您的工作年限" inputAlign="right" border="none"></u-input>
  77. </view>
  78. <view class="hflex acenter jbetween cell">
  79. <view class="left">个人特长</view>
  80. <view class="left" v-if="state == 2">{{userInfo.specialty?userInfo.specialty: '-'}}</view>
  81. <u-input v-model="userInfo.specialty" v-if="state != 2" placeholder="请输入您的特长" inputAlign="right" border="none"></u-input>
  82. </view>
  83. <view class="hflex acenter jbetween cell">
  84. <view class="left">专业技能</view>
  85. <view class="left" v-if="state == 2">{{userInfo.skill?userInfo.skill: '-'}}</view>
  86. <u-input v-model="userInfo.skill" v-if="state != 2" placeholder="请输入您的技能描述" inputAlign="right" border="none"></u-input>
  87. </view>
  88. <picker @change="bindTitleChange" :value="index" :range="titleList" range-key="name" :disabled="state == 2 ? true: false">
  89. <view class="hflex acenter jbetween cell">
  90. <view class="left">职称选择</view>
  91. <view class="left" v-if="state == 2">{{userInfo.title?userInfo.title: '-'}}</view>
  92. <u-input border="none" v-if="state != 2" disabled disabledColor="#fff" v-model="userInfo.title" placeholder="请选择您的职称" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
  93. </view>
  94. </picker>
  95. </view>
  96. <view class="box" style="margin-bottom: 108rpx;">
  97. <view class="box_title">简历及相关信息</view>
  98. <view class="hflex acenter jbetween">
  99. <view class="box_title " :class="state != 2 ? 'required' : ''">工作经历</view>
  100. <view class="hflex acenter" @click="perfect(3)" v-if="state != 2">
  101. <u-icon name="plus-circle-fill" color="#555555" size="12"></u-icon>
  102. <view class="text_style1">添加</view>
  103. </view>
  104. </view>
  105. <block v-for="(item,index) in userInfo.work" :key="index">
  106. <view class="padT-26" @click="editInfo(item.id)">
  107. <view class="hflex acenter jbetween">
  108. <view class="box_title">{{item.content.company_name}}</view>
  109. <u-icon name="arrow-right" color="#555555" size="12" v-if="state != 2"></u-icon>
  110. </view>
  111. <view class="hflex acenter padT-26">
  112. <view class="box_subTitle padR-24" style="padding-right: 24rpx;">{{item.content.on_job_start}}-{{item.content.on_job_end}}</view>
  113. <view class="box_subTitle">{{item.content.position_name}}</view>
  114. </view>
  115. <view class="hflex fwrap padT-26 box_subTitle">工作内容:{{item.content.job_description}}</view>
  116. </view>
  117. </block>
  118. <view class="box_title" :class="state == 2 ? 'line' : ''">培训经历</view>
  119. <view class="box_subTitle" v-if="state != 2">请详细描述您的培训经历</view>
  120. <view class="box_subTitle" v-if="state == 2">{{userInfo.train?userInfo.train:'-'}}</view>
  121. <u-input v-model="userInfo.train" v-if="state != 2" border="bottom"></u-input>
  122. <view class="box_title" :class="state == 2 ? 'line' : ''">资质证书</view>
  123. <view class="box_subTitle" v-if="state != 2">至少上传一张专业证书(包含毕业证书),证书请完整展示姓名,证书名称,证书日期及有效期</view>
  124. <view class="upload">
  125. <view class="hflex acenter fwrap" v-if="state == 2">
  126. <image :src="item.url" v-for="(item,index) in userInfo.fileList1" style="width: 200rpx;height: 200rpx;margin: 0 20rpx 20rpx 0;" :key="index"></image>
  127. </view>
  128. <u-upload v-if="state != 2" :fileList="userInfo.fileList1" @afterRead="afterRead" @delete="deletePic" :maxCount="9" name="1" multiple width="100" height="100">
  129. <!-- <image src="https://ship.shipcc.cn/common/upload.png" style="width: 200rpx;height: 200rpx;"></image> -->
  130. <view class="vflex acenter jcenter upload_bg" style="background: #F4F4F4;border-radius: 16rpx;width: 200rpx;height: 200rpx;">
  131. <u-icon name="plus" color="#ADADAD" size="32"></u-icon>
  132. <view class="" style="font-size: 26rpx;padding-top: 8px;color: #ADADAD;">
  133. 上传图片
  134. </view>
  135. </view>
  136. </u-upload>
  137. </view>
  138. </view>
  139. <view class="bottom" v-if="state == 0">
  140. <view class="btn" @click="submit">提交</view>
  141. </view>
  142. </view>
  143. <view class="box1 vflex acenter" v-if="state == 1">
  144. <image src="https://ship.shipcc.cn/common/wait.png" class="box1_img"></image>
  145. <view class="box1_title">审核中</view>
  146. <view class="box1_subTitle">预计审核时间3个工作日</view>
  147. <view class="box1_subTitle">请留意当前页面变动</view>
  148. <view class="btn" @click="result">返回</view>
  149. </view>
  150. <view class="box1 vflex acenter" v-if="state == 3">
  151. <image src="https://ship.shipcc.cn/common/error.png" class="box1_img"></image>
  152. <view class="box1_title">审核失败</view>
  153. <view class="box1_subTitle">驳回原因</view>
  154. <view class="box1_subTitle">{{reason}}<span style="color: #506dff;margin-left: 8rpx;" @click="edit">立即修改></span></view>
  155. <view class="btn" @click="result">返回</view>
  156. </view>
  157. </view>
  158. </template>
  159. <script>
  160. import $api from '@/static/js/api.js'
  161. var that = ''
  162. export default {
  163. data() {
  164. return {
  165. userInfo: {
  166. id: '',
  167. name: '', //姓名
  168. sex: '', //性别
  169. age: '', //年龄
  170. place: '', //籍贯
  171. phone: '', //电话
  172. email: '', //邮箱
  173. region: '', //所在地区
  174. school: '',
  175. major: '',
  176. year: '',
  177. province: '',
  178. city:'',
  179. area: '',
  180. address: '', //详细地址
  181. education: '', //学历
  182. specialty: '', //特长
  183. skill: '', //技能
  184. title: '', //职称
  185. title_id: '',
  186. work: [], //工作经历
  187. fileList1: [], //资质证明
  188. train: '', //培训经历
  189. },
  190. sexList: ['男','女'],
  191. ageList: [],
  192. educationList: ['初中及以下','中专/中技','高中','大专','本科','硕士','博士'],
  193. titleList: [],
  194. state: 0, //0 未加入,1 待审核,2 审核成功, 3审核失败
  195. reason: '', //驳回原因
  196. }
  197. },
  198. onLoad() {
  199. that = this
  200. that.getzclist()
  201. that.getageList()
  202. that.getPrepage()
  203. },
  204. onShow() {
  205. that.getWork()
  206. },
  207. methods: {
  208. getPrepage() {
  209. var pooltalent = {}
  210. $api.req({
  211. url: '/data/api.auth.Center/get',
  212. method: 'POST',
  213. }, function(res) {
  214. if(res.code == 1) {
  215. pooltalent = res.data.pooltalent
  216. if(pooltalent) {
  217. that.userInfo = {
  218. name: pooltalent.name, //姓名
  219. sex: pooltalent.sex, //性别
  220. age: pooltalent.age?pooltalent.age:'', //年龄
  221. place: pooltalent.jg, //籍贯
  222. phone: pooltalent.phone, //电话
  223. email: pooltalent.email, //邮箱
  224. region: pooltalent.province? pooltalent.province + pooltalent.city + pooltalent.area:'', //所在地区
  225. province: pooltalent.province,
  226. city:pooltalent.city,
  227. area: pooltalent.area,
  228. address: pooltalent.address, //详细地址
  229. school: pooltalent.graduate_school,
  230. major: pooltalent.major,
  231. year: pooltalent.working_life,
  232. education: pooltalent.xl, //学历
  233. specialty: pooltalent.tc, //特长
  234. skill: pooltalent.jn, //技能
  235. title: pooltalent.zc?pooltalent.zc.name:'', //职称
  236. title_id: pooltalent.zc?pooltalent.zc.id:'',
  237. work: pooltalent.gzll, //工作经历
  238. train: pooltalent.pxjl,
  239. id: pooltalent.id
  240. }
  241. var imgs = pooltalent.zz_imgs
  242. let obj = {}
  243. for(let key in imgs) {
  244. obj[key] = imgs[key]
  245. }
  246. var fileList1 = Object.keys(obj).map(item => ({
  247. url: obj[item]
  248. }))
  249. for(let i in fileList1) {
  250. if(fileList1[i].url.length <= 1) {
  251. console.log(fileList1[i]);
  252. fileList1.splice(i, 1)
  253. }
  254. }
  255. that.userInfo.fileList1 = fileList1
  256. console.log(that.userInfo.fileList1);
  257. that.state = pooltalent.audit
  258. that.reason = pooltalent.why
  259. }
  260. }
  261. })
  262. },
  263. getzclist() {
  264. $api.req({
  265. url: '/data/api.auth.Center/zclist',
  266. method: 'POST',
  267. }, function(res) {
  268. if(res.code == 1) {
  269. that.titleList = res.data
  270. }
  271. })
  272. },
  273. getWork() {
  274. var data = uni.getStorageSync('work_experience')
  275. if(!data) {
  276. return
  277. }
  278. var work = {
  279. content: JSON.parse(data)
  280. }
  281. that.userInfo.work.push(work)
  282. // console.log(that.userInfo.work);
  283. uni.removeStorageSync('work_experience')
  284. },
  285. getageList() {
  286. for(var i=18;i<=65;i++) {
  287. that.ageList.push(i)
  288. }
  289. },
  290. // 选择性别
  291. bindSexChange(e) {
  292. that.userInfo.sex = that.sexList[e.detail.value]
  293. },
  294. // 选择年龄
  295. bindAgeChange(e) {
  296. that.userInfo.age = that.ageList[e.detail.value]
  297. },
  298. // 选择所在地区
  299. changeAddress(e) {
  300. that.userInfo.region = e.detail.value[0] + '-' + e.detail.value[1] + '-' + e.detail.value[2]
  301. that.userInfo.province = e.detail.value[0]
  302. that.userInfo.city = e.detail.value[1]
  303. that.userInfo.area = e.detail.value[2]
  304. },
  305. // 选择学历
  306. bindEduChange(e) {
  307. that.userInfo.education = that.educationList[e.detail.value]
  308. },
  309. // 选择职称
  310. bindTitleChange(e) {
  311. that.userInfo.title = that.titleList[e.detail.value].name
  312. that.userInfo.title_id = that.titleList[e.detail.value].id
  313. },
  314. // 删除图片
  315. deletePic(event) {
  316. this.userInfo[`fileList${event.name}`].splice(event.index, 1)
  317. this.$forceUpdate()
  318. },
  319. // 新增图片
  320. async afterRead(event) {
  321. uni.showLoading({
  322. title: '上传中',
  323. mask: true
  324. })
  325. // 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
  326. let lists = [].concat(event.file)
  327. let fileListLen = this.userInfo[`fileList${event.name}`].length
  328. lists.map((item) => {
  329. this.userInfo[`fileList${event.name}`].push({
  330. ...item,
  331. status: 'uploading',
  332. message: '上传中'
  333. })
  334. })
  335. for (let i = 0; i < lists.length; i++) {
  336. const result = await this.uploadFilePromise(lists[i].url)
  337. let item = this.userInfo[`fileList${event.name}`][fileListLen]
  338. this.userInfo[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
  339. status: 'success',
  340. message: '',
  341. url: result.url
  342. }))
  343. fileListLen++
  344. if(lists.length - 1 == i) {
  345. uni.hideLoading()
  346. }
  347. }
  348. console.log(that.userInfo.fileList1);
  349. this.$forceUpdate()
  350. },
  351. // 上传图片
  352. uploadFilePromise(url) {
  353. return new Promise((resolve, reject) => {
  354. let a = uni.uploadFile({
  355. url: $api.config.baseUrl + '/data/api.auth.Center/upload',
  356. filePath: url,
  357. name: 'file',
  358. header: {
  359. 'content-type': 'application/x-www-form-urlencoded',
  360. 'api-token': uni.getStorageSync('token').token?uni.getStorageSync('token').token:'',
  361. 'api-name': 'wxapp'
  362. },
  363. formData: {
  364. user: 'test'
  365. },
  366. success: (res) => {
  367. setTimeout(() => {
  368. var data = JSON.parse(res.data)
  369. resolve(data.data)
  370. }, 1000)
  371. }
  372. });
  373. })
  374. },
  375. // 立即修改
  376. edit() {
  377. that.state = 0
  378. },
  379. // 添加或完善
  380. perfect(index) {
  381. if(that.state == 2) {
  382. return
  383. }
  384. $api.jump('/page_shop/pages/service/perfect')
  385. },
  386. // 修改工作经历
  387. editInfo(id) {
  388. if(that.state == 2) {
  389. return
  390. }
  391. $api.jump('/page_shop/pages/service/perfect?id='+ id)
  392. },
  393. // 返回
  394. result() {
  395. $api.jump(-1)
  396. },
  397. // 提交
  398. submit() {
  399. var u = that.userInfo
  400. var zz_imgs = ""
  401. if(u.name == '') {
  402. $api.info('请输入真实姓名')
  403. return
  404. }
  405. if(u.sex == '') {
  406. $api.info('请选择性别')
  407. return
  408. }
  409. if(u.age == '') {
  410. $api.info('请选择年龄')
  411. return
  412. }
  413. if(u.place == '') {
  414. $api.info('请输入籍贯')
  415. return
  416. }
  417. if(u.phone == '') {
  418. $api.info('请输入电话')
  419. return
  420. }
  421. if(u.email == '') {
  422. $api.info('请输入邮箱')
  423. return
  424. }
  425. if(u.city == '') {
  426. $api.info('请选择所在地区')
  427. return
  428. }
  429. if(u.address == '') {
  430. $api.info('请输入详细地址')
  431. return
  432. }
  433. if(u.school == '') {
  434. $api.info('请输入毕业院校')
  435. return
  436. }
  437. if(u.education == '') {
  438. $api.info('请选择学历')
  439. return
  440. }
  441. if(u.major == '') {
  442. $api.info('请输入专业')
  443. return
  444. }
  445. if(u.year == '') {
  446. $api.info('请输入工作年限')
  447. return
  448. }
  449. if(u.work.length == 0) {
  450. $api.info('请添加工作经历')
  451. return
  452. }
  453. if ($api.formCheck(u.name,'truename') && $api.formCheck(u.sex,'required') && $api.formCheck(u.age,'required') && $api.formCheck(u.phone,'mobile') && $api.formCheck(u.email,'email')) {
  454. /* uni.showLoading({
  455. title: '上传中',
  456. mask: true
  457. }) */
  458. if(u.fileList1.length == 0) {
  459. $api.info('请上传资质证书!')
  460. return
  461. }
  462. if(u.fileList1.length > 0) {
  463. for(var i=0;i<u.fileList1.length;i++) {
  464. if(i == u.fileList1.length - 1) {
  465. zz_imgs += u.fileList1[i].url
  466. } else {
  467. zz_imgs += u.fileList1[i].url + ','
  468. }
  469. }
  470. }
  471. $api.req({
  472. url: '/data/api.auth.Center/adduppooltalent',
  473. method: 'POST',
  474. data: {
  475. id: u.id?u.id: '',
  476. name: u.name,
  477. sex: u.sex,
  478. age: u.age,
  479. jg: u.place,
  480. phone: u.phone,
  481. email: u.email,
  482. province: u.province,
  483. city: u.city,
  484. area: u.area,
  485. address: u.address,
  486. graduate_school: u.school,
  487. xl: u.education,
  488. major: u.major,
  489. working_life: u.year,
  490. tc: u.specialty,
  491. jn: u.skill,
  492. zc_id: u.title_id,
  493. gzll: u.work,
  494. zz_imgs: zz_imgs,
  495. pxjl: u.train
  496. }
  497. }, function(res) {
  498. $api.info(res.info)
  499. if(res.code == 1) {
  500. that.state = 1
  501. // $api.jump('/pages/tabbar/mine/mine',3)
  502. }
  503. })
  504. } else {
  505. }
  506. }
  507. },
  508. }
  509. </script>
  510. <style lang="scss" scoped>
  511. .content::v-deep {
  512. background-color: #f4f4f4;
  513. // padding-top: 20rpx;
  514. .top {
  515. width: 100%;
  516. height: 60rpx;
  517. background-color: #f8efe2;
  518. padding: 20rpx 32rpx;
  519. box-sizing: border-box;
  520. .top_img {
  521. width: 36rpx;
  522. height: 36rpx;
  523. }
  524. .top_text {
  525. font-size: 26rpx;
  526. margin-left: 6rpx;
  527. color: #330e00;
  528. }
  529. }
  530. .required {
  531. position: relative;
  532. padding-left: 15rpx;
  533. }
  534. .required::after {
  535. content: '*';
  536. position: absolute;
  537. top: 5rpx;
  538. left: 0;
  539. font-size: 26rpx;
  540. font-weight: 400;
  541. color: #FF3232;
  542. }
  543. .box {
  544. width: 100%;
  545. background-color: #fff;
  546. margin-bottom: 20rpx;
  547. box-sizing: border-box;
  548. padding: 28rpx 30rpx;
  549. .box_title {
  550. font-size: 30rpx;
  551. color: #222;
  552. margin: 20rpx 0 32rpx;
  553. }
  554. .line {
  555. padding-top: 20rpx;
  556. border-top: 1px solid #F4F4F4;
  557. }
  558. .box_subTitle {
  559. font-size: 26rpx;
  560. color: #b7b7b7;
  561. // margin: ;
  562. }
  563. .upload {
  564. margin-top: 20rpx;
  565. width: 100%;
  566. padding-bottom: 20rpx;
  567. border-bottom: 1rpx solid #f4f4f4;
  568. }
  569. .u-input {
  570. width: 100%;
  571. // margin-top: 30rpx;
  572. }
  573. .cell {
  574. width: 100%;
  575. padding: 20rpx 0;
  576. .left {
  577. font-size: 28rpx;
  578. color: #222;
  579. }
  580. .u-input {
  581. font-size: 28rpx;
  582. color: #222;
  583. }
  584. }
  585. }
  586. .bottom {
  587. position: fixed;
  588. bottom: 0;
  589. left: 0;
  590. width: 100%;
  591. background: #fff;
  592. box-sizing: border-box;
  593. padding: 24rpx;
  594. z-index: 99;
  595. // margin: 80rpx 0 50rpx;
  596. .btn {
  597. width: 100%;
  598. height: 88rpx;
  599. border-radius: 44rpx;
  600. text-align: center;
  601. line-height: 88rpx;
  602. background-color: #506dff;
  603. font-size: 36rpx;
  604. color: #fff;
  605. }
  606. }
  607. .box1 {
  608. width: 100%;
  609. height: 100vh;
  610. background-color: #fff;
  611. .box1_img {
  612. width: 124rpx;
  613. height: 124rpx;
  614. margin: 108rpx 0 40rpx;
  615. }
  616. .box1_title {
  617. font-size: 32rpx;
  618. color: #222;
  619. margin-bottom: 24rpx;
  620. }
  621. .box1_subTitle {
  622. margin: 12rpx 0;
  623. font-size: 26rpx;
  624. color: #595959;
  625. }
  626. .btn {
  627. width: 530rpx;
  628. height: 88rpx;
  629. background-color: #506dff;
  630. color: #fff;
  631. text-align: center;
  632. line-height: 88rpx;
  633. border-radius: 44rpx;
  634. font-size: 36rpx;
  635. margin-top: 122rpx;
  636. }
  637. }
  638. }
  639. </style>