enterpriseInfo.vue 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. <template>
  2. <view class="content">
  3. <!-- 企业信息 -->
  4. <view class="info flex justify-center">
  5. <view class="info-box flex align-center justify-between">
  6. <image :src="info.companyLogo?info.companyLogo:'../../static/logo.png'"
  7. style="width: 130rpx;height: 130rpx;border-radius: 24rpx;" mode="">
  8. </image>
  9. <view class="info-box-r">
  10. <view class="info-box-r-title" v-show="info.companyName">
  11. {{info.companyName}}
  12. </view>
  13. <view class="info-box-r-label flex align-center flex-wrap">
  14. <view class="info-box-r-label-item" v-show="info.companyScope">
  15. {{info.companyScope}}
  16. </view>
  17. <view class="info-box-r-label-item" v-if="info.companyPeople">
  18. {{info.companyPeople}}
  19. </view>
  20. </view>
  21. </view>
  22. </view>
  23. </view>
  24. <!-- 企业介绍 -->
  25. <view class="remarks flex justify-center">
  26. <view class="remarks-box">
  27. <view class="remarks-box-title">
  28. 企业介绍
  29. </view>
  30. <view class="remarks-box-con">
  31. <u-read-more show-height="100" :shadow-style="shadowStyle" color="#FD6416" text-indent="0"
  32. closeText="展开">
  33. <rich-text :nodes="info.companyDetails"
  34. style="color: #ffffff;font-size: 28rpx;font-weight: 500;">
  35. </rich-text>
  36. </u-read-more>
  37. </view>
  38. </view>
  39. </view>
  40. <!-- 公司地址 -->
  41. <view class="address flex justify-center">
  42. <view class="address-box flex justify-center">
  43. <view class="address-box-c">
  44. <view class="address-box-c-title">
  45. 公司地址
  46. </view>
  47. <view @click="openMap()" class="address-box-c-add flex justify-between align-center">
  48. <view class="address-box-c-add-l flex align-center">
  49. <u-icon name="map" style="margin-right: 20rpx;" color="#00B88F" size="30"></u-icon>
  50. {{info.province?info.province:''}}{{info.city?info.city:''}}{{info.district?info.district:''}}
  51. {{info.companyAddress?info.companyAddress:''}}
  52. </view>
  53. <view class="address-box-c-add-r">
  54. <u-icon name="arrow-right" color="#FEFEFE" size="30"></u-icon>
  55. </view>
  56. </view>
  57. </view>
  58. </view>
  59. </view>
  60. <!-- 工商信息 -->
  61. <view class="gsInfo flex justify-center">
  62. <view class="gsInfo-box flex justify-center">
  63. <view class="gsInfo-box-c">
  64. <view class="gsInfo-box-c-title">
  65. 工商信息
  66. </view>
  67. <view class="gsInfo-box-c-item">
  68. 公司全称:{{info.companyName?info.companyName:''}}
  69. </view>
  70. <view class="gsInfo-box-c-item">
  71. 成立时间:{{info.companyCreateTime?info.companyCreateTime:''}}
  72. </view>
  73. <view class="gsInfo-box-c-item">
  74. 注册资本:{{info.companyRegisteredFund?info.companyRegisteredFund:''}}万人民币
  75. </view>
  76. <view class="gsInfo-box-c-item">
  77. 法人代表:{{info.companyLegalPerson?info.companyLegalPerson:'未知'}}
  78. </view>
  79. </view>
  80. </view>
  81. </view>
  82. <!-- 全部岗位弹窗 -->
  83. <btnPopous v-if="companyId" :companyId="companyId" :cittArr="cittArr" :classify="classify" :moneyArr="moneyArr"
  84. :jyArr="jyArr" />
  85. </view>
  86. </template>
  87. <script>
  88. import btnPopous from '../../components/btnPopous/btnPopous.vue'
  89. export default {
  90. components: {
  91. btnPopous
  92. },
  93. data() {
  94. return {
  95. backStyle: {
  96. color: '#ffffff'
  97. },
  98. shadowStyle: {
  99. backgroundImage: 'none',
  100. },
  101. companyId: '',
  102. info: {},
  103. cittArr: [], //企业发布岗位的城市数组
  104. moneyArr: [], //薪资列表数组
  105. jyArr: [], //工作经验列表数组
  106. classify: [], //岗位名称数组
  107. };
  108. },
  109. //分享
  110. onShareAppMessage(res) {
  111. return {
  112. path: '/my/enterpriseInfo/enterpriseInfo?companyId=' + this.companyId + '&invitation=' + uni
  113. .getStorageSync(
  114. 'invitationCode'),
  115. title: this.info.companyName,
  116. }
  117. },
  118. /*
  119. * uniapp微信小程序分享页面到微信朋友圈
  120. */
  121. onShareTimeline(res) {
  122. return {
  123. path: '/my/enterpriseInfo/enterpriseInfo?companyId=' + this.companyId + '&invitation=' + uni
  124. .getStorageSync(
  125. 'invitationCode'),
  126. title: this.info.companyName,
  127. }
  128. },
  129. // onPageScroll(e) {
  130. // if (e.scrollTop > 100) {
  131. // uni.setNavigationBarTitle({
  132. // title: '西安省钱兄网络科技有限公司'
  133. // })
  134. // } else {
  135. // uni.setNavigationBarTitle({
  136. // title: '企业详情'
  137. // })
  138. // }
  139. // },
  140. onLoad(option) {
  141. // 获取邀请码保存到本地
  142. if (option.invitation) {
  143. this.$queue.setData('inviterCode', option.invitation);
  144. }
  145. // #ifdef MP-WEIXIN
  146. if (option.scene) {
  147. const scene = decodeURIComponent(option.scene);
  148. this.$queue.setData('inviterCode', scene.split(',')[0]);
  149. }
  150. // #endif
  151. uni.showLoading({
  152. title: '加载中'
  153. })
  154. this.companyId = option.companyId
  155. this.getInfo();
  156. this.getCityCompanyId();
  157. this.getMoney();
  158. this.getJy();
  159. this.getClassify();
  160. },
  161. methods: {
  162. openMap() {
  163. let that = this
  164. if (that.info.companyLat && that.info.companyLng) {
  165. uni.openLocation({
  166. latitude: that.info.companyLat,
  167. longitude: that.info.companyLng,
  168. address: that.info.province + '' + that.info.city + '' + that.info.district + '' + that
  169. .info
  170. .companyAddress,
  171. name: that.info.companyAddress
  172. })
  173. } else {
  174. uni.showToast({
  175. title: '暂无位置信息',
  176. icon: 'none'
  177. })
  178. }
  179. },
  180. /**
  181. * 岗位分类数组
  182. */
  183. getClassify() {
  184. this.$Request.getT("/app/postPush/getCompanyClassify", {
  185. companyId: this.companyId
  186. }).then(res => {
  187. if (res.code == 0) {
  188. this.classify = res.data //岗位分类列表数组
  189. }
  190. })
  191. },
  192. /**
  193. * 获取薪资 列表
  194. */
  195. getMoney() {
  196. this.$Request.get("/app/dict/list", {
  197. type: '薪资 '
  198. }).then(res => {
  199. if (res.code == 0) {
  200. this.moneyArr = res.data //薪资列表数组
  201. }
  202. })
  203. },
  204. /**
  205. * 获取工作经验列表
  206. */
  207. getJy() {
  208. this.$Request.get("/app/dict/list", {
  209. type: '工作经验 '
  210. }).then(res => {
  211. if (res.code == 0) {
  212. this.jyArr = res.data //工作经验列表数组
  213. }
  214. })
  215. },
  216. /**
  217. * 根据公司id查询已发布岗位的市
  218. */
  219. getCityCompanyId() {
  220. let data = {
  221. companyId: this.companyId
  222. }
  223. this.$Request.getT("/app/postPush/getCityCompanyId", data).then(res => {
  224. if (res.code == 0) {
  225. this.cittArr = res.data
  226. }
  227. })
  228. },
  229. //获取企业详情
  230. getInfo() {
  231. let that = this
  232. this.$Request.get("/app/company/selectCompanyByCompanyId", {
  233. companyId: this.companyId
  234. }).then(res => {
  235. if (res.code == 0) {
  236. this.info = res.data
  237. if (this.info.companyName) {
  238. uni.setNavigationBarTitle({
  239. title: that.info.companyName
  240. })
  241. }
  242. // let reg = /.+?(省|市|自治区|自治州|县|区)/g
  243. // let cityarr = this.info.companyAddress.match(reg)
  244. // if (cityarr && cityarr != null) {
  245. // if (cityarr.length == 3) {
  246. // this.info.companyAddress = cityarr[0] + '' + cityarr[1] + '' + cityarr[2]
  247. // } else {
  248. // this.info.companyAddress = cityarr[0] + '' + cityarr[1]
  249. // }
  250. // }
  251. }
  252. uni.hideLoading()
  253. })
  254. },
  255. }
  256. }
  257. </script>
  258. <style lang="scss">
  259. page {
  260. background-color: #4B4D5C;
  261. // overflow: hidden;
  262. }
  263. .content {
  264. padding-bottom: 320rpx;
  265. }
  266. .info {
  267. width: 100%;
  268. height: 120rpx;
  269. margin-top: 50rpx;
  270. .info-box {
  271. width: 686rpx;
  272. height: 100%;
  273. .info-box-r {
  274. width: calc(100% - 150rpx);
  275. margin-left: 20rpx;
  276. }
  277. .info-box-r-title {
  278. color: #FFFFFF;
  279. font-size: 38rpx;
  280. font-weight: 800;
  281. margin-top: 10rpx;
  282. }
  283. .info-box-r-label {
  284. color: #FFFFFF;
  285. font-size: 28rpx;
  286. font-weight: 500;
  287. margin-top: 20rpx;
  288. .info-box-r-label-item {
  289. margin-right: 20rpx;
  290. margin-bottom: 20rpx;
  291. }
  292. }
  293. }
  294. }
  295. .remarks {
  296. width: 100%;
  297. margin-top: 60rpx;
  298. .remarks-box {
  299. width: 686rpx;
  300. .remarks-box-title {
  301. color: #FFFFFF;
  302. font-size: 32rpx;
  303. font-weight: 800;
  304. }
  305. .remarks-box-con {
  306. margin-top: 30rpx;
  307. }
  308. }
  309. }
  310. .address {
  311. width: 100%;
  312. height: 190rpx;
  313. margin-top: 50rpx;
  314. .address-box {
  315. width: 686rpx;
  316. height: 100%;
  317. background-color: #464855;
  318. border-radius: 24rpx;
  319. .address-box-c {
  320. width: 626rpx;
  321. height: 100%;
  322. }
  323. .address-box-c-title {
  324. color: #FFFFFF;
  325. font-size: 32rpx;
  326. font-weight: 800;
  327. margin-top: 40rpx;
  328. }
  329. .address-box-c-add {
  330. width: 100%;
  331. height: 40rpx;
  332. margin-top: 30rpx;
  333. .address-box-c-add-l {
  334. color: #FEFEFE;
  335. }
  336. }
  337. }
  338. }
  339. .gsInfo {
  340. width: 100%;
  341. margin-top: 20rpx;
  342. .gsInfo-box {
  343. width: 686rpx;
  344. height: 100%;
  345. background-color: #464855;
  346. border-radius: 24rpx;
  347. .gsInfo-box-c {
  348. width: 626rpx;
  349. height: 100%;
  350. padding-top: 30rpx;
  351. padding-bottom: 30rpx;
  352. }
  353. .gsInfo-box-c-title {
  354. color: #FFFFFF;
  355. font-size: 32rpx;
  356. font-weight: 800;
  357. }
  358. .gsInfo-box-c-item {
  359. margin-top: 30rpx;
  360. color: #FEFEFE;
  361. font-size: 28rpx;
  362. font-weight: 500;
  363. }
  364. }
  365. }
  366. </style>