enterpriseInfo.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887
  1. <template>
  2. <view class="content" :style="{ paddingTop: (12 + statusBarHeight + 88 - 60) + 'px' }">
  3. <!-- 固定顶部导航 -->
  4. <view class="fixed-nav" :style="{ paddingTop: (12 + statusBarHeight) + 'px' }">
  5. <view class="nav-bar">
  6. <view class="nav-left" @click="goBack">
  7. <u-icon name="arrow-leftward" color="rgba(51, 51, 51, 1)" style="font-size: 38rpx;"></u-icon>
  8. </view>
  9. <view class="nav-title">公司介绍</view>
  10. <view class="nav-right">
  11. <view class="nav-icons">
  12. <view class="nav-icon" @click="setCollection">
  13. <image v-if="isCollection==0" src="/static/images/index/guanzhu.svg" class="icon-img"></image>
  14. <image v-else src="/static/images/index/gzActive.svg" class="icon-img"></image>
  15. </view>
  16. <view class="nav-icon" @click="showShare">
  17. <image src="/static/images/index/fenxiang.svg" class="icon-img"></image>
  18. </view>
  19. </view>
  20. </view>
  21. </view>
  22. </view>
  23. <!-- 企业信息 -->
  24. <view class="info flex justify-center">
  25. <view class="info-box flex align-center justify-between">
  26. <view class="info-box-r">
  27. <view class="info-box-r-title" v-show="info.companyName">
  28. {{info.companyName}}
  29. </view>
  30. <view class="info-box-r-label flex align-center flex-wrap">
  31. <view class="info-box-r-label-item" v-if="info.companyPeople">
  32. {{info.companyPeople}}
  33. </view>
  34. <view class="info-box-r-label-item" v-show="info.companyScope">
  35. {{info.companyScope}}
  36. </view>
  37. </view>
  38. </view>
  39. <image :src="info.companyLogo?info.companyLogo:'../../static/logo.png'"
  40. style="width: 120rpx;height: 120rpx;border-radius: 50%;" mode="">
  41. </image>
  42. </view>
  43. </view>
  44. <!-- 急聘标签 -->
  45. <!-- 公司地址 -->
  46. <view class="address flex justify-center">
  47. <view class="address-box flex justify-center">
  48. <view class="address-box-c">
  49. <!-- 工作时间 -->
  50. <view class="working-hours flex align-center">
  51. <u-icon name="clock" color="rgba(51, 51, 51, 1)" size="38" style="margin-right: 12rpx;"></u-icon>
  52. <text>上午9:00-下午06:30</text>
  53. </view>
  54. <!-- 福利标签 -->
  55. <view class="benefits-section">
  56. <view class="benefits-tags flex align-center flex-wrap">
  57. <view class="benefit-tag">
  58. <image src="/static/images/index/huizhang.svg" class="tag-icon"></image>
  59. <text>五险一金</text>
  60. </view>
  61. <view class="benefit-tag">
  62. <image src="/static/images/index/huizhang.svg" class="tag-icon"></image>
  63. <text>补充医疗保险</text>
  64. </view>
  65. <view class="benefit-tag">
  66. <image src="/static/images/index/huizhang.svg" class="tag-icon"></image>
  67. <text>定期体检</text>
  68. </view>
  69. <view class="benefit-tag">
  70. <image src="/static/images/index/huizhang.svg" class="tag-icon"></image>
  71. <text>年终奖</text>
  72. </view>
  73. </view>
  74. </view>
  75. <!-- 地址信息 -->
  76. <view @click="openMap()" class="address-box-c-add flex justify-between align-center">
  77. <view class="address-box-c-add-l flex align-center">
  78. <u-icon name="map" style="margin-right: 12rpx;" color="rgba(51, 51, 51, 1)" size="24"></u-icon>
  79. <text>{{info.province?info.province:''}}{{info.city?info.city:''}}{{info.district?info.district:''}}{{info.companyAddress?info.companyAddress:''}}</text>
  80. </view>
  81. <!--
  82. <view class="address-box-c-add-r">
  83. <u-icon name="arrow-right" color="rgba(51, 51, 51, 1)" size="24"></u-icon>
  84. </view>
  85. -->
  86. </view>
  87. </view>
  88. </view>
  89. </view>
  90. <!-- 企业介绍 -->
  91. <view class="remarks flex justify-center">
  92. <view class="remarks-box">
  93. <view class="remarks-box-title">
  94. 公司介绍
  95. </view>
  96. <view class="remarks-box-con">
  97. <u-read-more show-height="100" :shadow-style="shadowStyle" color="#FD6416" text-indent="0"
  98. closeText="展开">
  99. <!-- <rich-text :nodes="info.companyDetails"
  100. style="color: #ffffff;font-size: 28rpx;font-weight: 500;">
  101. </rich-text> -->
  102. <view class="remarks-box-con-item">
  103. 汉睿国际(汉睿集团)成立于2019年11月,是一家致力于打造跨境电商一站式综合服务平台的企业。集团依托全球视野下的跨境服务资源,通过“跨境电商赋能 + 人才培养孵化 + 产业链撮合”的运营模式,推动跨境电商本土XXXXXXXXXXXXXXXXXX...
  104. </view>
  105. </u-read-more>
  106. </view>
  107. </view>
  108. </view>
  109. <!-- 主营业务 -->
  110. <view class="business-section flex justify-center">
  111. <view class="business-box">
  112. <view class="business-title">主营业务</view>
  113. <view class="business-tags flex flex-wrap">
  114. <view class="business-tag" v-for="(business, index) in businessList" :key="index">
  115. {{business}}
  116. </view>
  117. </view>
  118. </view>
  119. </view>
  120. <!-- hr介绍 -->
  121. <view class="hr-section flex justify-center">
  122. <view class="hr-box">
  123. <view class="hr-header flex justify-between align-center">
  124. <view class="hr-title">HR介绍</view>
  125. <view class="view-all-jobs" @click="goToMoreJobs">
  126. <text>查看所有职位</text>
  127. </view>
  128. </view>
  129. <view class="hr-list flex justify-between">
  130. <view class="hr-item" v-for="(hr, index) in hrList" :key="index">
  131. <view class="hr-content flex align-center">
  132. <view class="hr-avatar-container">
  133. <view class="hr-avatar" :style="{ backgroundColor: hr.color }">
  134. <text class="avatar-text">{{hr.name.charAt(0)}}</text>
  135. </view>
  136. <view class="online-dot"></view>
  137. </view>
  138. <view class="hr-text">
  139. <view class="hr-name">{{hr.name}}</view>
  140. <view class="hr-position">{{hr.position}}</view>
  141. </view>
  142. </view>
  143. </view>
  144. </view>
  145. </view>
  146. </view>
  147. <!-- 人才发展 -->
  148. <view class="talent-section flex justify-center">
  149. <view class="talent-box">
  150. <view class="talent-title">人才发展</view>
  151. <view class="talent-tags flex flex-wrap">
  152. <view class="talent-tag" v-for="(talent, index) in talentList" :key="index">
  153. {{talent}}
  154. </view>
  155. </view>
  156. </view>
  157. </view>
  158. <!-- 公司风采 -->
  159. <!-- 工商信息 -->
  160. <view class="gsInfo flex justify-center">
  161. <view class="gsInfo-box flex justify-center">
  162. <view class="gsInfo-box-c">
  163. <view class="gsInfo-box-c-title">
  164. 工商信息
  165. </view>
  166. <view class="gsInfo-box-c-item">
  167. 公司全称:{{info.companyName?info.companyName:''}}
  168. </view>
  169. <view class="gsInfo-box-c-item">
  170. 成立时间:{{info.companyCreateTime?info.companyCreateTime:''}}
  171. </view>
  172. <view class="gsInfo-box-c-item">
  173. 注册资本:{{info.companyRegisteredFund?info.companyRegisteredFund:''}}万人民币
  174. </view>
  175. <view class="gsInfo-box-c-item">
  176. 法人代表:{{info.companyLegalPerson?info.companyLegalPerson:'未知'}}
  177. </view>
  178. </view>
  179. </view>
  180. </view>
  181. <!-- 全部岗位弹窗 -->
  182. <btnPopous ref="jobPopup" v-if="showJobPopup && companyId" :companyId="companyId" :cittArr="cittArr" :classify="classify" :moneyArr="moneyArr"
  183. :jyArr="jyArr" @closePopup="closeJobPopup" />
  184. </view>
  185. </template>
  186. <script>
  187. import btnPopous from '../../components/btnPopous/btnPopous.vue'
  188. export default {
  189. components: {
  190. btnPopous
  191. },
  192. data() {
  193. return {
  194. statusBarHeight: 0, // 状态栏高度
  195. backStyle: {
  196. color: '#ffffff'
  197. },
  198. shadowStyle: {
  199. backgroundImage: 'none',
  200. },
  201. companyId: '',
  202. info: {},
  203. isCollection: 0, // 收藏状态
  204. showJobPopup: false, // 控制职位弹窗显示
  205. cittArr: [], //企业发布岗位的城市数组
  206. moneyArr: [], //薪资列表数组
  207. jyArr: [], //工作经验列表数组
  208. classify: [], //岗位名称数组
  209. hrList: [
  210. {
  211. name: '孙先生',
  212. position: '人事经理',
  213. color: '#4A90E2'
  214. },
  215. {
  216. name: '宋先生',
  217. position: 'HRBP',
  218. color: '#7ED321'
  219. },
  220. {
  221. name: '邹先生',
  222. position: 'HR助力',
  223. color: '#F5A623'
  224. }
  225. ],
  226. businessList: ['居家日用', '食品饮料', '3C数码', '美妆日化'],
  227. talentList: ['考核晋升', '项目奖金', '股票期权', '每年普调']
  228. };
  229. },
  230. //分享
  231. onShareAppMessage(res) {
  232. return {
  233. path: '/my/enterpriseInfo/enterpriseInfo?companyId=' + this.companyId + '&invitation=' + uni
  234. .getStorageSync(
  235. 'invitationCode'),
  236. title: this.info.companyName,
  237. }
  238. },
  239. /*
  240. * uniapp微信小程序分享页面到微信朋友圈
  241. */
  242. onShareTimeline(res) {
  243. return {
  244. path: '/my/enterpriseInfo/enterpriseInfo?companyId=' + this.companyId + '&invitation=' + uni
  245. .getStorageSync(
  246. 'invitationCode'),
  247. title: this.info.companyName,
  248. }
  249. },
  250. // onPageScroll(e) {
  251. // if (e.scrollTop > 100) {
  252. // uni.setNavigationBarTitle({
  253. // title: '西安省钱兄网络科技有限公司'
  254. // })
  255. // } else {
  256. // uni.setNavigationBarTitle({
  257. // title: '企业详情'
  258. // })
  259. // }
  260. // },
  261. onLoad(option) {
  262. // 获取状态栏高度
  263. let systemInfo = uni.getSystemInfoSync();
  264. this.statusBarHeight = systemInfo.statusBarHeight || 0;
  265. // 获取邀请码保存到本地
  266. if (option.invitation) {
  267. this.$queue.setData('inviterCode', option.invitation);
  268. }
  269. // #ifdef MP-WEIXIN
  270. if (option.scene) {
  271. const scene = decodeURIComponent(option.scene);
  272. this.$queue.setData('inviterCode', scene.split(',')[0]);
  273. }
  274. // #endif
  275. uni.showLoading({
  276. title: '加载中'
  277. })
  278. this.companyId = option.companyId
  279. this.getInfo();
  280. this.getCityCompanyId();
  281. this.getMoney();
  282. this.getJy();
  283. this.getClassify();
  284. },
  285. methods: {
  286. // 返回上一页
  287. goBack() {
  288. uni.navigateBack();
  289. },
  290. // 显示分享选项
  291. showShare() {
  292. // 可以添加分享逻辑
  293. uni.showToast({
  294. title: '分享功能',
  295. icon: 'none'
  296. });
  297. },
  298. // 收藏企业
  299. setCollection() {
  300. this.$Request.postT("/app/myCollection/saveCollection", {
  301. companyId: this.companyId,
  302. type: 2 // 2表示收藏企业
  303. }).then(res => {
  304. if (res.code == 0) {
  305. uni.showToast({
  306. title: res.msg
  307. })
  308. this.isCollection = this.isCollection == 0 ? 1 : 0;
  309. }
  310. })
  311. },
  312. // 显示所有职位弹窗
  313. goToMoreJobs() {
  314. this.showJobPopup = true;
  315. this.$nextTick(() => {
  316. if (this.$refs.jobPopup) {
  317. this.$refs.jobPopup.topY = true;
  318. }
  319. });
  320. },
  321. // 关闭职位弹窗
  322. closeJobPopup() {
  323. this.showJobPopup = false;
  324. },
  325. openMap() {
  326. let that = this
  327. if (that.info.companyLat && that.info.companyLng) {
  328. uni.openLocation({
  329. latitude: that.info.companyLat,
  330. longitude: that.info.companyLng,
  331. address: that.info.province + '' + that.info.city + '' + that.info.district + '' + that
  332. .info
  333. .companyAddress,
  334. name: that.info.companyAddress
  335. })
  336. } else {
  337. uni.showToast({
  338. title: '暂无位置信息',
  339. icon: 'none'
  340. })
  341. }
  342. },
  343. /**
  344. * 岗位分类数组
  345. */
  346. getClassify() {
  347. this.$Request.getT("/app/postPush/getCompanyClassify", {
  348. companyId: this.companyId
  349. }).then(res => {
  350. if (res.code == 0) {
  351. this.classify = res.data //岗位分类列表数组
  352. }
  353. })
  354. },
  355. /**
  356. * 获取薪资 列表
  357. */
  358. getMoney() {
  359. this.$Request.get("/app/dict/list", {
  360. type: '薪资 '
  361. }).then(res => {
  362. if (res.code == 0) {
  363. this.moneyArr = res.data //薪资列表数组
  364. }
  365. })
  366. },
  367. /**
  368. * 获取工作经验列表
  369. */
  370. getJy() {
  371. this.$Request.get("/app/dict/list", {
  372. type: '工作经验 '
  373. }).then(res => {
  374. if (res.code == 0) {
  375. this.jyArr = res.data //工作经验列表数组
  376. }
  377. })
  378. },
  379. /**
  380. * 根据公司id查询已发布岗位的市
  381. */
  382. getCityCompanyId() {
  383. let data = {
  384. companyId: this.companyId
  385. }
  386. this.$Request.getT("/app/postPush/getCityCompanyId", data).then(res => {
  387. if (res.code == 0) {
  388. this.cittArr = res.data
  389. }
  390. })
  391. },
  392. //获取企业详情
  393. getInfo() {
  394. let that = this
  395. this.$Request.get("/app/company/selectCompanyByCompanyId", {
  396. companyId: this.companyId
  397. }).then(res => {
  398. if (res.code == 0) {
  399. this.info = res.data
  400. if (this.info.companyName) {
  401. uni.setNavigationBarTitle({
  402. title: that.info.companyName
  403. })
  404. }
  405. // let reg = /.+?(省|市|自治区|自治州|县|区)/g
  406. // let cityarr = this.info.companyAddress.match(reg)
  407. // if (cityarr && cityarr != null) {
  408. // if (cityarr.length == 3) {
  409. // this.info.companyAddress = cityarr[0] + '' + cityarr[1] + '' + cityarr[2]
  410. // } else {
  411. // this.info.companyAddress = cityarr[0] + '' + cityarr[1]
  412. // }
  413. // }
  414. }
  415. uni.hideLoading()
  416. })
  417. },
  418. }
  419. }
  420. </script>
  421. <style lang="scss">
  422. page {
  423. // background-color: #4B4D5C;
  424. // overflow: hidden;
  425. }
  426. .content {
  427. // padding-top 已改为动态计算,在模板中通过 :style 设置
  428. }
  429. .fixed-nav {
  430. position: fixed;
  431. top: 0;
  432. left: 0;
  433. right: 0;
  434. z-index: 9999;
  435. background-color: #ffffff;
  436. padding: 0 32rpx;
  437. // padding-top 已改为动态计算,在模板中通过 :style 设置
  438. }
  439. .nav-bar {
  440. display: flex;
  441. align-items: center;
  442. justify-content: space-between;
  443. height: 88rpx;
  444. padding: 0 8rpx;
  445. // margin-bottom: 30rpx; // 已移除,因为现在是固定导航栏
  446. // padding: 0 40rpx; // 已调整,因为外层 fixed-nav 已有 padding
  447. .nav-left {
  448. display: flex;
  449. align-items: center;
  450. justify-content: flex-start;
  451. width: 96rpx;
  452. }
  453. .nav-title {
  454. color: rgba(34, 37, 42, 1);
  455. font-family: DM Sans;
  456. font-size: 16px;
  457. font-weight: 400;
  458. line-height: 24px;
  459. letter-spacing: 0px;
  460. text-align: left;
  461. }
  462. .nav-right {
  463. display: flex;
  464. align-items: center;
  465. justify-content: flex-end;
  466. width: 96rpx;
  467. }
  468. .nav-icons {
  469. display: flex;
  470. align-items: center;
  471. gap: 24rpx;
  472. }
  473. .nav-icon {
  474. display: flex;
  475. align-items: center;
  476. justify-content: center;
  477. width: 36rpx;
  478. height: 36rpx;
  479. }
  480. .icon-img {
  481. width: 42rpx;
  482. height: 42rpx;
  483. }
  484. }
  485. .info {
  486. width: 100%;
  487. height: 100rpx;
  488. margin-top: 50rpx;
  489. .info-box {
  490. width: 686rpx;
  491. height: 100%;
  492. .info-box-r {
  493. width: calc(100% - 150rpx);
  494. }
  495. .info-box-r-title {
  496. color: rgba(58, 57, 67, 1);
  497. font-family: DM Sans;
  498. font-size: 42rpx;
  499. font-weight: 700;
  500. line-height: 30px;
  501. letter-spacing: 0px;
  502. text-align: left;
  503. }
  504. .info-box-r-label {
  505. color: #FFFFFF;
  506. font-size: 28rpx;
  507. font-weight: 500;
  508. margin-top: 20rpx;
  509. .info-box-r-label-item {
  510. color: rgba(153, 153, 153, 1);
  511. font-family: DM Sans;
  512. font-size: 24rpx;
  513. font-weight: 400;
  514. line-height: 16px;
  515. letter-spacing: 0%;
  516. text-align: left;
  517. }
  518. }
  519. }
  520. }
  521. .remarks {
  522. width: 100%;
  523. margin-top: 50rpx;
  524. .remarks-box {
  525. width: 686rpx;
  526. .remarks-box-title {
  527. color: rgba(34, 37, 42, 1);
  528. font-family: DM Sans;
  529. font-size: 16px;
  530. font-weight: 400;
  531. line-height: 24px;
  532. letter-spacing: 0px;
  533. text-align: left;
  534. }
  535. .remarks-box-con {
  536. margin-top: 30rpx;
  537. .remarks-box-con-item {
  538. color: rgba(153, 153, 153, 1);
  539. font-family: DM Sans;
  540. font-size: 14px;
  541. font-weight: 400;
  542. line-height: 18px;
  543. letter-spacing: 0px;
  544. text-align: left;
  545. }
  546. }
  547. }
  548. }
  549. .address {
  550. width: 100%;
  551. margin-top: 50rpx;
  552. .address-box {
  553. width: 686rpx;
  554. border-radius: 24rpx;
  555. .address-box-c {
  556. width: 100%;
  557. .working-hours {
  558. margin-bottom: 24rpx;
  559. text {
  560. color: rgba(51, 51, 51, 1);
  561. font-size: 28rpx;
  562. font-weight: 400;
  563. }
  564. }
  565. .benefits-section {
  566. margin-bottom: 24rpx;
  567. .benefits-tags {
  568. gap: 12rpx;
  569. .benefit-tag {
  570. background: rgba(40, 107, 229, 0.1);
  571. border-radius: 12rpx;
  572. padding: 12rpx;
  573. display: flex;
  574. align-items: center;
  575. gap: 8rpx;
  576. .tag-icon {
  577. width: 48rpx;
  578. height: 48rpx;
  579. }
  580. text {
  581. color: rgba(34, 37, 42, 0.5);
  582. font-family: DM Sans;
  583. font-size: 12px;
  584. font-weight: 400;
  585. line-height: 22px;
  586. letter-spacing: 0px;
  587. text-align: left;
  588. }
  589. }
  590. }
  591. }
  592. .address-box-c-add {
  593. padding: 0;
  594. .address-box-c-add-l {
  595. color: rgba(102, 102, 102, 1);
  596. font-family: DM Sans;
  597. font-size: 24rpx;
  598. font-weight: 400;
  599. line-height: 16px;
  600. letter-spacing: 0px;
  601. text-align: left;
  602. }
  603. .address-box-c-add-r {
  604. width: 48rpx;
  605. height: 48rpx;
  606. display: flex;
  607. align-items: center;
  608. justify-content: center;
  609. }
  610. }
  611. }
  612. }
  613. }
  614. .business-section {
  615. width: 100%;
  616. margin-top: 30rpx;
  617. .business-box {
  618. width: 686rpx;
  619. background: #ffffff;
  620. border-radius: 24rpx;
  621. .business-title {
  622. color: rgba(34, 37, 42, 1);
  623. font-family: DM Sans;
  624. font-size: 16px;
  625. font-weight: 400;
  626. line-height: 24px;
  627. letter-spacing: 0px;
  628. text-align: left;
  629. margin-bottom: 24rpx;
  630. }
  631. .business-tags {
  632. gap: 12rpx;
  633. .business-tag {
  634. background: transparent;
  635. border: 1px solid rgba(153, 196, 250, 1);
  636. border-radius: 12rpx;
  637. padding: 6rpx 12rpx;
  638. color: rgba(40, 107, 229, 1);
  639. font-family: DM Sans;
  640. font-size: 20rpx;
  641. font-weight: 400;
  642. line-height: 16px;
  643. letter-spacing: 0px;
  644. text-align: center;
  645. }
  646. }
  647. }
  648. }
  649. .talent-section {
  650. width: 100%;
  651. margin-top: 30rpx;
  652. .talent-box {
  653. width: 686rpx;
  654. background: #ffffff;
  655. border-radius: 24rpx;
  656. .talent-title {
  657. color: rgba(34, 37, 42, 1);
  658. font-family: DM Sans;
  659. font-size: 16px;
  660. font-weight: 400;
  661. line-height: 24px;
  662. letter-spacing: 0px;
  663. text-align: left;
  664. margin-bottom: 24rpx;
  665. }
  666. .talent-tags {
  667. gap: 12rpx;
  668. .talent-tag {
  669. background: rgba(153, 153, 153, 0.1);
  670. border-radius: 12rpx;
  671. padding: 6rpx 12rpx;
  672. color: rgba(102, 102, 102, 1);
  673. font-family: DM Sans;
  674. font-size: 20rpx;
  675. font-weight: 400;
  676. line-height: 16px;
  677. letter-spacing: 0px;
  678. text-align: center;
  679. }
  680. }
  681. }
  682. }
  683. .hr-section {
  684. width: 100%;
  685. .hr-box {
  686. width: 686rpx;
  687. background: #ffffff;
  688. border-radius: 24rpx;
  689. .hr-header {
  690. padding: 50rpx 0 0 0;
  691. margin-bottom: 30rpx;
  692. .hr-title {
  693. color: rgba(34, 37, 42, 1);
  694. font-family: DM Sans;
  695. font-size: 16px;
  696. font-weight: 400;
  697. line-height: 24px;
  698. letter-spacing: 0px;
  699. text-align: left;
  700. }
  701. .view-all-jobs {
  702. text {
  703. color: rgba(255, 102, 0, 1);
  704. font-family: DM Sans;
  705. font-size: 12px;
  706. font-weight: 400;
  707. line-height: 16px;
  708. letter-spacing: 0px;
  709. text-align: right;
  710. }
  711. }
  712. }
  713. .hr-list {
  714. padding: 0 0 30rpx 0;
  715. .hr-item {
  716. flex: 1;
  717. .hr-content {
  718. align-items: center;
  719. .hr-avatar-container {
  720. position: relative;
  721. margin-right: 16rpx;
  722. .hr-avatar {
  723. width: 80rpx;
  724. height: 80rpx;
  725. border-radius: 50%;
  726. display: flex;
  727. align-items: center;
  728. justify-content: center;
  729. position: relative;
  730. .avatar-text {
  731. color: #ffffff;
  732. font-size: 32rpx;
  733. font-weight: 600;
  734. }
  735. }
  736. .online-dot {
  737. position: absolute;
  738. bottom: 4rpx;
  739. right: 4rpx;
  740. width: 20rpx;
  741. height: 20rpx;
  742. background-color: #7ED321;
  743. border-radius: 50%;
  744. border: 3rpx solid #ffffff;
  745. }
  746. }
  747. .hr-text {
  748. .hr-name {
  749. color: rgba(34, 37, 42, 1);
  750. font-family: DM Sans;
  751. font-size: 28rpx;
  752. font-weight: 500;
  753. line-height: 20px;
  754. margin-bottom: 4rpx;
  755. text-align: left;
  756. }
  757. .hr-position {
  758. color: rgba(153, 153, 153, 1);
  759. font-family: DM Sans;
  760. font-size: 24rpx;
  761. font-weight: 400;
  762. line-height: 16px;
  763. text-align: left;
  764. }
  765. }
  766. }
  767. }
  768. }
  769. }
  770. }
  771. .gsInfo {
  772. width: 100%;
  773. margin-top: 20rpx;
  774. .gsInfo-box {
  775. width: 686rpx;
  776. height: 100%;
  777. border-radius: 24rpx;
  778. .gsInfo-box-c {
  779. width: 100%;
  780. height: 100%;
  781. padding-top: 30rpx;
  782. padding-bottom: 30rpx;
  783. }
  784. .gsInfo-box-c-title {
  785. color: rgba(34, 37, 42, 1);
  786. font-family: DM Sans;
  787. font-size: 16px;
  788. font-weight: 400;
  789. line-height: 24px;
  790. letter-spacing: 0px;
  791. text-align: left;
  792. margin-bottom: 10rpx;
  793. }
  794. .gsInfo-box-c-item {
  795. color: rgba(153, 153, 153, 1);
  796. font-family: DM Sans;
  797. font-size: 12px;
  798. font-weight: 400;
  799. line-height: 16px;
  800. letter-spacing: 0%;
  801. text-align: left;
  802. margin-bottom: 10rpx;
  803. }
  804. }
  805. }
  806. </style>