enterpriseInfo.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092
  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 v-if="false" class="nav-icon" @click="setCollection">
  13. <image v-if="isCollection == 0" src="/static/images/index/guanzhu.svg" class="icon-img">
  14. </image>
  15. <image v-else src="/static/images/index/gzActive.svg" class="icon-img"></image>
  16. </view>
  17. <view class="nav-icon" @click="showShare">
  18. <image src="/static/images/index/fenxiang.svg" class="icon-img"></image>
  19. </view>
  20. </view>
  21. </view>
  22. </view>
  23. </view>
  24. <!-- 企业信息 -->
  25. <view class="info flex justify-center">
  26. <view class="info-box flex align-center justify-between">
  27. <view class="info-box-r">
  28. <view class="info-box-r-title" v-show="info.companyName">
  29. {{ info.companyName }}
  30. </view>
  31. <view class="info-box-r-label flex align-center flex-wrap">
  32. <view class="info-box-r-label-item" v-if="info.companyPeople">
  33. {{ info.companyPeople }}
  34. </view>
  35. <!-- <view class="info-box-r-label-item" v-show="info.companyScope">
  36. {{ info.companyScope }}
  37. </view> -->
  38. </view>
  39. <view class="info-box-r-label-item" v-show="info.companyAllName">
  40. {{ info.companyAllName ? info.companyAllName : '--' }}
  41. </view>
  42. </view>
  43. <image :src="info.companyLogo ? info.companyLogo : '../../static/logo.png'"
  44. style="width: 120rpx;height: 120rpx;border-radius: 50%;" mode="">
  45. </image>
  46. </view>
  47. </view>
  48. <!-- 急聘标签 -->
  49. <!-- 公司地址 -->
  50. <view class="address flex justify-center">
  51. <view class="address-box flex justify-center">
  52. <view class="address-box-c">
  53. <!-- 工作时间 -->
  54. <view class="working-hours flex align-center">
  55. <u-icon name="clock" color="rgba(51, 51, 51, 1)" size="38"
  56. style="margin-right: 12rpx;"></u-icon>
  57. <text>{{ info.workTime }}</text>
  58. </view>
  59. <!-- 福利标签 -->
  60. <view class="benefits-section">
  61. <view class="benefits-tags flex align-center flex-wrap">
  62. <view class="benefit-tag" v-for="item in info.welfareArr">
  63. <image src="/static/images/index/huizhang.svg" class="tag-icon"></image>
  64. <text>{{ item }}</text>
  65. </view>
  66. </view>
  67. </view>
  68. <!-- 地址信息 -->
  69. <view @click="openMap()" class="address-box-c-add flex justify-between align-center">
  70. <view class="address-box-c-add-l flex align-center">
  71. <u-icon name="map" style="margin-right: 12rpx;" color="rgba(51, 51, 51, 1)"
  72. size="24"></u-icon>
  73. <text v-if="info.city">{{ info.province ? info.province : '' }}{{ info.city ? info.city : ''
  74. }}{{
  75. info.district ? info.district : '' }}{{ info.companyAddress ? info.companyAddress : ''
  76. }}</text>
  77. <text v-else>暂无地址信息</text>
  78. </view>
  79. <!--
  80. <view class="address-box-c-add-r">
  81. <u-icon name="arrow-right" color="rgba(51, 51, 51, 1)" size="24"></u-icon>
  82. </view>
  83. -->
  84. </view>
  85. </view>
  86. </view>
  87. </view>
  88. <!-- 企业介绍 -->
  89. <view class="remarks flex justify-center">
  90. <view class="remarks-box">
  91. <view class="remarks-box-title">
  92. 公司介绍
  93. </view>
  94. <view class="remarks-box-con">
  95. <u-read-more show-height="100" :shadow-style="shadowStyle" color="#FD6416" text-indent="0"
  96. closeText="展开">
  97. <!-- <rich-text :nodes="info.companyDetails"
  98. style="color: #ffffff;font-size: 28rpx;font-weight: 500;">
  99. </rich-text> -->
  100. <view class="remarks-box-con-item">
  101. {{ info.companyContent }}
  102. </view>
  103. </u-read-more>
  104. </view>
  105. </view>
  106. </view>
  107. <!-- 主营业务 -->
  108. <view class="business-section flex justify-center">
  109. <view class="business-box">
  110. <view class="business-title">主营业务</view>
  111. <!-- <view class="business-tags flex flex-wrap" v-if="businessList&&businessList.length>0">
  112. <view class="business-tag" v-for="(business, index) in businessList" :key="index">
  113. {{ business }}
  114. </view>
  115. </view> -->
  116. <view class="remarks-box-con-item" v-if="info.companyScope">
  117. {{ info.companyScope }}
  118. </view>
  119. <view class="hr-desc" v-else>
  120. 暂无业务信息
  121. </view>
  122. </view>
  123. </view>
  124. <!-- hr介绍 -->
  125. <view class="hr-section flex justify-center">
  126. <view class="hr-box">
  127. <view class="hr-header flex justify-between align-center">
  128. <view class="hr-title">HR介绍</view>
  129. <view class="view-all-jobs" @click="goToMoreJobs">
  130. <text>查看所有职位</text>
  131. </view>
  132. </view>
  133. <view class="hr-list flex justify-between" v-if="info.hr && info.hr.length > 0">
  134. <view class="hr-item" v-for="(hr, index) in info.hr" :key="index">
  135. <view class="hr-content flex align-center">
  136. <view class="hr-avatar-container">
  137. <view class="hr-avatar" :style="{ backgroundColor: hr.color }">
  138. <text class="avatar-text">{{ hr.name.charAt(0) }}</text>
  139. </view>
  140. <view class="online-dot"></view>
  141. </view>
  142. <view class="hr-text">
  143. <view class="hr-name">{{ hr.name }}</view>
  144. <view class="hr-position">{{ hr.hrPosition }}</view>
  145. </view>
  146. </view>
  147. </view>
  148. </view>
  149. <view class="hr-desc" v-else>暂无HR信息</view>
  150. </view>
  151. </view>
  152. <!-- 人才发展 -->
  153. <view class="talent-section flex justify-center">
  154. <view class="talent-box">
  155. <view class="talent-title">人才发展</view>
  156. <view class="talent-tags flex flex-wrap">
  157. <view class="talent-tag" v-for="(talent, index) in talentList" :key="index">
  158. {{ talent }}
  159. </view>
  160. </view>
  161. </view>
  162. </view>
  163. <!-- 公司风采 -->
  164. <view class="talent-section flex justify-center">
  165. <view class="talent-box">
  166. <view class="talent-title">公司风采</view>
  167. <view class="talent-tags flex flex-wrap" v-if="info.photos">
  168. <view class="photo" v-for="(talent, index) in info.photos.split(',')" :key="index">
  169. <image mode="widthFix" :src="talent" class="photoImage"></image>
  170. </view>
  171. </view>
  172. <view class="hr-desc" v-else>该公司还未上传相关图片!</view>
  173. </view>
  174. </view>
  175. <!-- 工商信息 -->
  176. <view class="gsInfo flex justify-center">
  177. <view class="gsInfo-box flex justify-center">
  178. <view class="gsInfo-box-c">
  179. <view class="gsInfo-box-c-title">
  180. 工商信息
  181. </view>
  182. <view class="gsInfo-box-c-item">
  183. 公司全称:{{ info.companyAllName ? info.companyAllName : '' }}
  184. </view>
  185. <view class="gsInfo-box-c-item">
  186. 成立时间:{{ info.companyCreateTime ? info.companyCreateTime : '' }}
  187. </view>
  188. <view class="gsInfo-box-c-item">
  189. 注册资本:{{ info.companyRegisteredFund ? info.companyRegisteredFund : '' }}万人民币
  190. </view>
  191. <view class="gsInfo-box-c-item">
  192. 法人代表:{{ info.companyLegalPerson ? info.companyLegalPerson : '未知' }}
  193. </view>
  194. </view>
  195. </view>
  196. </view>
  197. <!-- 全部岗位弹窗 -->
  198. <btnPopous ref="jobPopup" v-if="showJobPopup && companyId && classify.length > 0" :companyId="companyId"
  199. :cittArr="cittArr" :classify="classify" :moneyArr="moneyArr" :jyArr="jyArr" @closePopup="closeJobPopup" />
  200. <u-popup v-model="shows" z-index="99999" mode="bottom" border-radius="14" height="300rpx">
  201. <view class="shar flex justify-center">
  202. <view class="shar-box flex justify-around">
  203. <view class="shar-box-item" @click="appShare('WXSceneSession')">
  204. <u-icon name="weixin-circle-fill" color="#45b630" style="margin-left: 10rpx;" size="70">
  205. </u-icon>
  206. <view class="">
  207. 微信好友
  208. </view>
  209. </view>
  210. <view class="shar-box-item" @click="appShare('WXSenceTimeline')">
  211. <u-icon name="moments-circel-fill" color="#6dbf30" size="70" style="margin-left: 20rpx;">
  212. </u-icon>
  213. <view class="">
  214. 微信朋友圈
  215. </view>
  216. </view>
  217. </view>
  218. </view>
  219. <view class="line"></view>
  220. <view class="sharNo" @click="shows = false">
  221. 取消
  222. </view>
  223. </u-popup>
  224. </view>
  225. </template>
  226. <script>
  227. import btnPopous from '../../components/btnPopous/btnPopous.vue'
  228. import config from '../../common/config.js'
  229. export default {
  230. components: {
  231. btnPopous
  232. },
  233. data() {
  234. return {
  235. statusBarHeight: 0, // 状态栏高度
  236. backStyle: {
  237. color: '#ffffff'
  238. },
  239. shadowStyle: {
  240. backgroundImage: 'none',
  241. },
  242. companyId: '',
  243. info: {},
  244. isCollection: 0, // 收藏状态
  245. showJobPopup: false, // 控制职位弹窗显示
  246. cittArr: [], //企业发布岗位的城市数组
  247. moneyArr: [], //薪资列表数组
  248. jyArr: [], //工作经验列表数组
  249. classify: [], //岗位名称数组
  250. hrList: [
  251. {
  252. name: '孙先生',
  253. position: '人事经理',
  254. color: '#4A90E2'
  255. },
  256. {
  257. name: '宋先生',
  258. position: 'HRBP',
  259. color: '#7ED321'
  260. },
  261. {
  262. name: '邹先生',
  263. position: 'HR助力',
  264. color: '#F5A623'
  265. }
  266. ],
  267. businessList: [],
  268. talentList: [],
  269. sharType: 0,
  270. sharMsg: '',
  271. shows: false
  272. };
  273. },
  274. //分享
  275. onShareAppMessage(res) {
  276. return {
  277. path: '/my/enterpriseInfo/enterpriseInfo?companyId=' + this.companyId + '&invitation=' + uni
  278. .getStorageSync(
  279. 'invitationCode'),
  280. title: this.info.companyName,
  281. }
  282. },
  283. /*
  284. * uniapp微信小程序分享页面到微信朋友圈
  285. */
  286. onShareTimeline(res) {
  287. return {
  288. path: '/my/enterpriseInfo/enterpriseInfo?companyId=' + this.companyId + '&invitation=' + uni
  289. .getStorageSync(
  290. 'invitationCode'),
  291. title: this.info.companyName,
  292. }
  293. },
  294. // onPageScroll(e) {
  295. // if (e.scrollTop > 100) {
  296. // uni.setNavigationBarTitle({
  297. // title: '西安省钱兄网络科技有限公司'
  298. // })
  299. // } else {
  300. // uni.setNavigationBarTitle({
  301. // title: '企业详情'
  302. // })
  303. // }
  304. // },
  305. onLoad(option) {
  306. // 获取状态栏高度
  307. let systemInfo = uni.getSystemInfoSync();
  308. this.statusBarHeight = systemInfo.statusBarHeight || 0;
  309. // 获取邀请码保存到本地
  310. if (option.invitation) {
  311. this.$queue.setData('inviterCode', option.invitation);
  312. }
  313. // #ifdef MP-WEIXIN
  314. if (option.scene) {
  315. const scene = decodeURIComponent(option.scene);
  316. this.$queue.setData('inviterCode', scene.split(',')[0]);
  317. }
  318. // #endif
  319. uni.showLoading({
  320. title: '加载中'
  321. })
  322. this.companyId = option.companyId
  323. this.getInfo();
  324. this.getCityCompanyId();
  325. this.getMoney();
  326. this.getJy();
  327. this.getClassify();
  328. },
  329. methods: {
  330. // 返回上一页
  331. goBack() {
  332. uni.navigateBack();
  333. },
  334. // 显示分享选项
  335. showShare() {
  336. // 可以添加分享逻辑
  337. this.shows = true
  338. },
  339. //app分享
  340. appShare(scene) {
  341. // #ifdef H5
  342. this.shar()
  343. this.shows = false;
  344. return
  345. //#endif
  346. let that = this
  347. let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
  348. let curRoute = routes[routes.length - 1].$page.fullPath // 获取当前页面路由,也就是最后一个打开的页面路由
  349. uni.share({
  350. provider: "weixin", //分享服务提供商(即weixin|qq|sinaweibo)
  351. scene: scene, //场景,可取值参考下面说明。
  352. type: 5, //分享形式 0:图文 1:纯文字 2:纯图片 3:音乐 4:视频 5:小程序
  353. // href: curRoute, //跳转链接
  354. // imageUrl:'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/962fc340-4f2c-11eb-bdc1-8bd33eb6adaa.png',
  355. imageUrl: that.sharMsg,
  356. title: that.info.stationName, //分享内容的标题
  357. miniProgram: {
  358. id: 'gh_d531be6accdb', //分享的小程序原始id
  359. path: curRoute, //分享的小程序的页面路径
  360. webUrl: "https://ask.dcloud.net.cn/article/287", //地址
  361. type: that.sharType, //微信小程序的版本 0-正式版; 1-测试版; 2-体验版。 默认值为0。
  362. },
  363. success: function (res) {
  364. that.shows = false; //成功后关闭底部弹框
  365. },
  366. fail: function (err) {
  367. console.log(err, '分享失败回调')
  368. uni.showToast({
  369. title: '分享失败',
  370. icon: 'none',
  371. duration: 2000
  372. })
  373. that.shows = false;
  374. }
  375. });
  376. },
  377. getShowModal() {
  378. uni.showModal({
  379. title: '提示',
  380. content: '请登录后联系企业',
  381. showCancel: true,
  382. cancelText: '取消',
  383. confirmText: '去登录',
  384. complete: (res) => {
  385. if (res.confirm) {
  386. uni.navigateTo({
  387. url: '/pages/public/login'
  388. })
  389. }
  390. }
  391. });
  392. },
  393. shar() {
  394. if (uni.getStorageSync('token')) {
  395. let that = this
  396. // h5分享
  397. // #ifdef H5
  398. let url = config.WSHOST4 + '/my/enterpriseInfo/enterpriseInfo?companyId=' + this.companyId + '&invitation=' + uni
  399. .getStorageSync(
  400. 'invitationCode')
  401. // let url = 'http://192.168.0.109:8081/pages/index/game/order?postPushId=' + this.postPushId
  402. // alert(url)
  403. uni.setClipboardData({
  404. data: url,
  405. success() {
  406. uni.showToast({
  407. title: '分享链接已复制'
  408. })
  409. }
  410. })
  411. // #endif
  412. } else {
  413. this.getShowModal()
  414. }
  415. },
  416. // 收藏企业
  417. setCollection() {
  418. this.$Request.postT("/app/myCollection/saveCollection", {
  419. companyId: this.companyId,
  420. type: 3 // 2表示收藏企业
  421. }).then(res => {
  422. if (res.code == 0) {
  423. uni.showToast({
  424. title: res.msg
  425. })
  426. this.isCollection = this.isCollection == 0 ? 1 : 0;
  427. }
  428. })
  429. },
  430. // 显示所有职位弹窗
  431. goToMoreJobs() {
  432. this.showJobPopup = true;
  433. this.$nextTick(() => {
  434. if (this.$refs.jobPopup) {
  435. this.$refs.jobPopup.topY = true;
  436. }
  437. });
  438. },
  439. // 关闭职位弹窗
  440. closeJobPopup() {
  441. this.showJobPopup = false;
  442. },
  443. openMap() {
  444. let that = this
  445. if (that.info.companyLat && that.info.companyLng) {
  446. uni.openLocation({
  447. latitude: that.info.companyLat,
  448. longitude: that.info.companyLng,
  449. address: that.info.province + '' + that.info.city + '' + that.info.district + '' + that
  450. .info
  451. .companyAddress,
  452. name: that.info.companyAddress
  453. })
  454. } else {
  455. uni.showToast({
  456. title: '暂无位置信息',
  457. icon: 'none'
  458. })
  459. }
  460. },
  461. /**
  462. * 岗位分类数组
  463. */
  464. getClassify() {
  465. this.$Request.getT("/app/postPush/getCompanyClassify", {
  466. companyId: this.companyId
  467. }).then(res => {
  468. if (res.code == 0) {
  469. this.classify = res.data //岗位分类列表数组
  470. }
  471. })
  472. },
  473. /**
  474. * 获取薪资 列表
  475. */
  476. getMoney() {
  477. this.$Request.get("/app/dict/list", {
  478. type: '薪资 '
  479. }).then(res => {
  480. if (res.code == 0) {
  481. this.moneyArr = res.data //薪资列表数组
  482. }
  483. })
  484. },
  485. /**
  486. * 获取工作经验列表
  487. */
  488. getJy() {
  489. this.$Request.get("/app/dict/list", {
  490. type: '工作经验 '
  491. }).then(res => {
  492. if (res.code == 0) {
  493. this.jyArr = res.data //工作经验列表数组
  494. }
  495. })
  496. },
  497. /**
  498. * 根据公司id查询已发布岗位的市
  499. */
  500. getCityCompanyId() {
  501. let data = {
  502. companyId: this.companyId
  503. }
  504. this.$Request.getT("/app/postPush/getCityCompanyId", data).then(res => {
  505. if (res.code == 0) {
  506. this.cittArr = res.data
  507. }
  508. })
  509. },
  510. //获取企业详情
  511. getInfo() {
  512. let that = this
  513. this.$Request.get("/app/company/selectCompanyByCompanyId", {
  514. companyId: this.companyId
  515. }).then(res => {
  516. if (res.code == 0) {
  517. let color = ['#4A90E2', '#7ED321', '#F5A623']
  518. res.data.welfareArr = res.data.welfare ? res.data.welfare.split(',') : []
  519. res.data.photosArr = res.data.photosArr ? res.data.photos.split(',') : []
  520. that.talentList = res.data.companyPeopleDevelop ? res.data.companyPeopleDevelop.split(',') : []
  521. that.businessList = res.data.workDescribe ? res.data.workDescribe.split(',') : []
  522. if (res.data.hr) {
  523. res.data.hr.forEach(function (item, index) {
  524. if (item) {
  525. item.name = '匿名'
  526. item.color = color[index % 3]
  527. for (const user of res.data.userEntities) {
  528. if (item.userId == user.userId) {
  529. item.name = user.userName;
  530. break; // 直接跳出循环
  531. }
  532. }
  533. }
  534. })
  535. }
  536. this.info = res.data
  537. if (this.info.companyName) {
  538. uni.setNavigationBarTitle({
  539. title: that.info.companyName
  540. })
  541. }
  542. that.isCollection = res.data.isCollect || 0
  543. // let reg = /.+?(省|市|自治区|自治州|县|区)/g
  544. // let cityarr = this.info.companyAddress.match(reg)
  545. // if (cityarr && cityarr != null) {
  546. // if (cityarr.length == 3) {
  547. // this.info.companyAddress = cityarr[0] + '' + cityarr[1] + '' + cityarr[2]
  548. // } else {
  549. // this.info.companyAddress = cityarr[0] + '' + cityarr[1]
  550. // }
  551. // }
  552. }
  553. uni.hideLoading()
  554. })
  555. },
  556. }
  557. }
  558. </script>
  559. <style lang="scss">
  560. page {
  561. // background-color: #4B4D5C;
  562. // overflow: hidden;
  563. }
  564. .hr-desc {
  565. color: rgba(102, 102, 102, 1);
  566. font-family: DM Sans;
  567. font-size: 20rpx;
  568. }
  569. .content {
  570. // padding-top 已改为动态计算,在模板中通过 :style 设置
  571. }
  572. .fixed-nav {
  573. position: fixed;
  574. top: 0;
  575. left: 0;
  576. right: 0;
  577. z-index: 9999;
  578. background-color: #ffffff;
  579. padding: 0 32rpx;
  580. // padding-top 已改为动态计算,在模板中通过 :style 设置
  581. }
  582. .nav-bar {
  583. display: flex;
  584. align-items: center;
  585. justify-content: space-between;
  586. height: 88rpx;
  587. padding: 0 8rpx;
  588. // margin-bottom: 30rpx; // 已移除,因为现在是固定导航栏
  589. // padding: 0 40rpx; // 已调整,因为外层 fixed-nav 已有 padding
  590. .nav-left {
  591. display: flex;
  592. align-items: center;
  593. justify-content: flex-start;
  594. width: 96rpx;
  595. }
  596. .nav-title {
  597. color: rgba(34, 37, 42, 1);
  598. font-family: DM Sans;
  599. font-size: 16px;
  600. font-weight: 400;
  601. line-height: 24px;
  602. letter-spacing: 0px;
  603. text-align: left;
  604. }
  605. .nav-right {
  606. display: flex;
  607. align-items: center;
  608. justify-content: flex-end;
  609. width: 96rpx;
  610. }
  611. .nav-icons {
  612. display: flex;
  613. align-items: center;
  614. gap: 24rpx;
  615. }
  616. .nav-icon {
  617. display: flex;
  618. align-items: center;
  619. justify-content: center;
  620. width: 36rpx;
  621. height: 36rpx;
  622. }
  623. .icon-img {
  624. width: 42rpx;
  625. height: 42rpx;
  626. }
  627. }
  628. .info {
  629. width: 100%;
  630. height: 100rpx;
  631. margin-top: 50rpx;
  632. .info-box {
  633. width: 686rpx;
  634. height: 100%;
  635. .info-box-r {
  636. width: calc(100% - 150rpx);
  637. }
  638. .info-box-r-title {
  639. color: rgba(58, 57, 67, 1);
  640. font-family: DM Sans;
  641. font-size: 42rpx;
  642. font-weight: 700;
  643. line-height: 30px;
  644. letter-spacing: 0px;
  645. text-align: left;
  646. }
  647. .info-box-r-label {
  648. color: #FFFFFF;
  649. font-size: 28rpx;
  650. font-weight: 500;
  651. margin-top: 20rpx;
  652. .info-box-r-label-item {
  653. color: rgba(153, 153, 153, 1);
  654. font-family: DM Sans;
  655. font-size: 24rpx;
  656. font-weight: 400;
  657. line-height: 16px;
  658. letter-spacing: 0%;
  659. text-align: left;
  660. margin-right: 10rpx
  661. }
  662. }
  663. }
  664. }
  665. .info-box-r-label-item {
  666. color: rgba(153, 153, 153, 1);
  667. font-family: DM Sans;
  668. font-size: 24rpx;
  669. font-weight: 400;
  670. line-height: 16px;
  671. letter-spacing: 0%;
  672. text-align: left;
  673. margin-right: 10rpx;
  674. margin-top: 20rpx;
  675. }
  676. .remarks {
  677. width: 100%;
  678. margin-top: 50rpx;
  679. .remarks-box {
  680. width: 686rpx;
  681. .remarks-box-title {
  682. color: rgba(34, 37, 42, 1);
  683. font-family: DM Sans;
  684. font-size: 16px;
  685. font-weight: 400;
  686. line-height: 24px;
  687. letter-spacing: 0px;
  688. text-align: left;
  689. }
  690. .remarks-box-con {
  691. margin-top: 30rpx;
  692. }
  693. }
  694. }
  695. .remarks-box-con-item {
  696. color: rgba(153, 153, 153, 1);
  697. font-family: DM Sans;
  698. font-size: 14px;
  699. font-weight: 400;
  700. line-height: 18px;
  701. letter-spacing: 0px;
  702. text-align: left;
  703. }
  704. .address {
  705. width: 100%;
  706. margin-top: 50rpx;
  707. .address-box {
  708. width: 686rpx;
  709. border-radius: 24rpx;
  710. .address-box-c {
  711. width: 100%;
  712. .working-hours {
  713. margin-bottom: 24rpx;
  714. text {
  715. color: rgba(51, 51, 51, 1);
  716. font-size: 28rpx;
  717. font-weight: 400;
  718. }
  719. }
  720. .benefits-section {
  721. margin-bottom: 24rpx;
  722. .benefits-tags {
  723. gap: 12rpx;
  724. .benefit-tag {
  725. background: rgba(40, 107, 229, 0.1);
  726. border-radius: 12rpx;
  727. padding: 12rpx;
  728. display: flex;
  729. align-items: center;
  730. gap: 8rpx;
  731. .tag-icon {
  732. width: 42rpx;
  733. height: 42rpx;
  734. }
  735. text {
  736. color: rgba(34, 37, 42, 0.5);
  737. font-family: DM Sans;
  738. font-size: 20rpx;
  739. font-weight: 400;
  740. line-height: 44rpx;
  741. letter-spacing: 0px;
  742. text-align: left;
  743. }
  744. }
  745. }
  746. }
  747. .address-box-c-add {
  748. padding: 0;
  749. .address-box-c-add-l {
  750. color: rgba(102, 102, 102, 1);
  751. font-family: DM Sans;
  752. font-size: 24rpx;
  753. font-weight: 400;
  754. line-height: 16px;
  755. letter-spacing: 0px;
  756. text-align: left;
  757. }
  758. .address-box-c-add-r {
  759. width: 48rpx;
  760. height: 48rpx;
  761. display: flex;
  762. align-items: center;
  763. justify-content: center;
  764. }
  765. }
  766. }
  767. }
  768. }
  769. .business-section {
  770. width: 100%;
  771. margin-top: 30rpx;
  772. .business-box {
  773. width: 686rpx;
  774. background: #ffffff;
  775. border-radius: 24rpx;
  776. .business-title {
  777. color: rgba(34, 37, 42, 1);
  778. font-family: DM Sans;
  779. font-size: 16px;
  780. font-weight: 400;
  781. line-height: 24px;
  782. letter-spacing: 0px;
  783. text-align: left;
  784. margin-bottom: 24rpx;
  785. }
  786. .business-tags {
  787. gap: 12rpx;
  788. .business-tag {
  789. background: transparent;
  790. border: 1px solid rgba(153, 196, 250, 1);
  791. border-radius: 12rpx;
  792. padding: 6rpx 12rpx;
  793. color: rgba(40, 107, 229, 1);
  794. font-family: DM Sans;
  795. font-size: 20rpx;
  796. font-weight: 400;
  797. line-height: 16px;
  798. letter-spacing: 0px;
  799. text-align: center;
  800. }
  801. }
  802. }
  803. }
  804. .talent-section {
  805. width: 100%;
  806. margin-top: 30rpx;
  807. .talent-box {
  808. width: 686rpx;
  809. background: #ffffff;
  810. border-radius: 24rpx;
  811. .talent-title {
  812. color: rgba(34, 37, 42, 1);
  813. font-family: DM Sans;
  814. font-size: 16px;
  815. font-weight: 400;
  816. line-height: 24px;
  817. letter-spacing: 0px;
  818. text-align: left;
  819. margin-bottom: 24rpx;
  820. }
  821. .talent-tags {
  822. gap: 12rpx;
  823. .talent-tag {
  824. background: rgba(153, 153, 153, 0.1);
  825. border-radius: 12rpx;
  826. padding: 6rpx 12rpx;
  827. color: rgba(102, 102, 102, 1);
  828. font-family: DM Sans;
  829. font-size: 20rpx;
  830. font-weight: 400;
  831. line-height: 16px;
  832. letter-spacing: 0px;
  833. text-align: center;
  834. }
  835. .photo {
  836. width: 100%;
  837. .photoImage {
  838. width: 100%;
  839. display: block;
  840. }
  841. }
  842. }
  843. }
  844. }
  845. .hr-section {
  846. width: 100%;
  847. .hr-box {
  848. width: 686rpx;
  849. background: #ffffff;
  850. border-radius: 24rpx;
  851. .hr-header {
  852. padding: 50rpx 0 0 0;
  853. margin-bottom: 30rpx;
  854. .hr-title {
  855. color: rgba(34, 37, 42, 1);
  856. font-family: DM Sans;
  857. font-size: 16px;
  858. font-weight: 400;
  859. line-height: 24px;
  860. letter-spacing: 0px;
  861. text-align: left;
  862. }
  863. .view-all-jobs {
  864. text {
  865. color: rgba(255, 102, 0, 1);
  866. font-family: DM Sans;
  867. font-size: 12px;
  868. font-weight: 400;
  869. line-height: 16px;
  870. letter-spacing: 0px;
  871. text-align: right;
  872. }
  873. }
  874. }
  875. .hr-list {
  876. padding: 0 0 30rpx 0;
  877. .hr-item {
  878. flex: 1;
  879. .hr-content {
  880. align-items: center;
  881. .hr-avatar-container {
  882. position: relative;
  883. margin-right: 16rpx;
  884. .hr-avatar {
  885. width: 80rpx;
  886. height: 80rpx;
  887. border-radius: 50%;
  888. display: flex;
  889. align-items: center;
  890. justify-content: center;
  891. position: relative;
  892. .avatar-text {
  893. color: #ffffff;
  894. font-size: 32rpx;
  895. font-weight: 600;
  896. }
  897. }
  898. .online-dot {
  899. position: absolute;
  900. bottom: 4rpx;
  901. right: 4rpx;
  902. width: 20rpx;
  903. height: 20rpx;
  904. background-color: #7ED321;
  905. border-radius: 50%;
  906. border: 3rpx solid #ffffff;
  907. }
  908. }
  909. .hr-text {
  910. .hr-name {
  911. color: rgba(34, 37, 42, 1);
  912. font-family: DM Sans;
  913. font-size: 28rpx;
  914. font-weight: 500;
  915. line-height: 20px;
  916. margin-bottom: 4rpx;
  917. text-align: left;
  918. }
  919. .hr-position {
  920. color: rgba(153, 153, 153, 1);
  921. font-family: DM Sans;
  922. font-size: 24rpx;
  923. font-weight: 400;
  924. line-height: 16px;
  925. text-align: left;
  926. }
  927. }
  928. }
  929. }
  930. }
  931. }
  932. }
  933. .gsInfo {
  934. width: 100%;
  935. margin-top: 20rpx;
  936. .gsInfo-box {
  937. width: 686rpx;
  938. height: 100%;
  939. border-radius: 24rpx;
  940. .gsInfo-box-c {
  941. width: 100%;
  942. height: 100%;
  943. padding-top: 30rpx;
  944. padding-bottom: 30rpx;
  945. }
  946. .gsInfo-box-c-title {
  947. color: rgba(34, 37, 42, 1);
  948. font-family: DM Sans;
  949. font-size: 16px;
  950. font-weight: 400;
  951. line-height: 24px;
  952. letter-spacing: 0px;
  953. text-align: left;
  954. margin-bottom: 10rpx;
  955. }
  956. .gsInfo-box-c-item {
  957. color: rgba(153, 153, 153, 1);
  958. font-family: DM Sans;
  959. font-size: 12px;
  960. font-weight: 400;
  961. line-height: 16px;
  962. letter-spacing: 0%;
  963. text-align: left;
  964. margin-bottom: 10rpx;
  965. }
  966. }
  967. }
  968. .shar {
  969. width: 100%;
  970. height: 100rpx;
  971. margin-top: 40rpx;
  972. .shar-box {
  973. width: 686rpx;
  974. height: 100%;
  975. .shar-box-item {
  976. font-size: 24rpx;
  977. }
  978. }
  979. }
  980. .line {
  981. width: 100%;
  982. border: 1rpx solid #F2F2F7;
  983. margin-top: 30rpx;
  984. margin-bottom: 20rpx;
  985. }
  986. .sharNo {
  987. width: 100%;
  988. color: #cccccc;
  989. font-size: 24rpx;
  990. text-align: center;
  991. }
  992. </style>