enterpriseInfo.vue 25 KB

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