Browse Source

Merge branch 'master' of https://git.citupro.com/zhengnaiwen_citu/menduner-uniapp

lifanagju_citu 1 tháng trước cách đây
mục cha
commit
1d1b464334

+ 2 - 18
App.vue

@@ -2,24 +2,6 @@
 // import { onShareAppMessage, onShareTimeline } from '@dcloudio/uni-app'
 	export default {
 		onLaunch: function() {
-			// wx.showShareMenu({
-			// 	withShareTicket: true,
-			// 	menus: ['shareAppMessage', 'shareTimeline']
-			// })
-			// onShareAppMessage(() => {
-			// 	return {
-			// 		title: '门墩儿 专注顶尖招聘',
-			// 		path: '/pages/index/position',
-			// 		imageUrl: '../../static/img/share-poster.jpg'
-			// 	}
-			// })
-			// onShareTimeline(() => {
-			// 	return {
-			// 		title: '门墩儿 专注顶尖招聘',
-			// 		path: '/pages/index/position',
-			// 		imageUrl: '../../static/img/share-poster.jpg'
-			// 	}
-			// })
 			console.log('App Launch')
 			uni.setStorageSync('firstOpen', true)
 
@@ -61,9 +43,11 @@
 	/* #ifndef APP-NVUE */
 	@import '@/static/iconfont.wxss';
 	@import '@/static/style/index.scss';
+	
 	// 设置整个项目的背景色
 	page {
 		background-color: #ffffff;
+		font-family: MiSans-Normal;
 	}
 
 	/* #endif */

+ 77 - 18
components/Navbar/index.vue

@@ -3,8 +3,8 @@
     class="navbar"
     :class="{'gradientBgc': !noBgColor}"
     :style="{
-      'height': (navbarHeight < defaultLogoHeight ? (defaultLogoHeight + 10) : navbarHeight + 10) + 'px',
-      'line-height': (navbarHeight < defaultLogoHeight ? (defaultLogoHeight + 10) : navbarHeight + 10) + 'px',
+      'height': height + 'px',
+      'line-height': height + 'px',
     }"
   >
     <view class="navbar-box" :style="{'paddingTop': statusBarHeight + 'px'}">
@@ -14,7 +14,18 @@
         class="navbar-box-logo" 
         :style="{'height': defaultLogoHeight + 'px'}"
       ></image>
-      <view v-else class="navbar-box-title" :class="[{'text-left': textLeft}, {'text-center': !textLeft}]">{{ title }}</view>
+      <view v-else class="nav-box-title" :style="{'height': height ? (height - statusBarHeight) + 'px' : '100%'}">
+        <uni-icons 
+          v-if="!textLeft" 
+          :type="pages && pages.length > 1 ? 'icon-left' : 'icon-shouye'" 
+          size="23" 
+          class="ss-m-l-20" 
+          color="#0E100F" 
+          @tap="goBack"
+          custom-prefix="iconfont"
+        ></uni-icons>
+        <view class="title-text" :class="[{'text-left': textLeft}, {'text-center': !textLeft}]">{{ title }}</view>
+      </view>
     </view>
   </view>
 </template>
@@ -47,8 +58,11 @@ defineProps({
 const defaultLogoHeight = 40
 const navbarHeight = ref(0)
 const statusBarHeight = ref(0)
+const height = ref(0)
 
-onLoad(() => {
+const pages = ref([])
+onLoad(async () => {
+  pages.value = getCurrentPages() // 获取当前页面栈的实例数组
   try {
     const systemInfo = uni.getSystemInfoSync()
     statusBarHeight.value = systemInfo.statusBarHeight
@@ -62,13 +76,52 @@ onLoad(() => {
       navbarHeight.value = defaultLogoHeight + 10
     }
 
-    // 将 navbarHeight 存入本地缓存
-    const height = navbarHeight.value < defaultLogoHeight ? (defaultLogoHeight + 10) : navbarHeight.value + 10
-    uni.setStorageSync('navbarHeight', height)
+    height.value = navbarHeight.value < defaultLogoHeight ? (defaultLogoHeight + 10) : navbarHeight.value + 10
+	  await new Promise((resolve, reject) => {
+	    uni.setStorage({
+	      key: 'navbarHeight',
+	      data: height.value,
+	      success: resolve,
+	      fail: reject
+	    })
+	  })
   } catch (error) {
     console.error('获取系统信息或菜单按钮信息时出错:', error)
   }
 })
+
+// 返回上一页或首页
+const goBack = () => {
+  if (pages.value.length > 1) {
+    uni.navigateBack({
+      delta: 1,
+      fail: () => {
+        console.error('返回上一页失败,尝试跳转到首页')
+        uni.reLaunch({
+          url: '/pages/index/position',
+          fail: (err) => {
+            console.error('跳转到首页也失败:', err)
+            uni.showToast({
+              title: '导航失败,请稍后重试',
+              icon: 'none'
+            })
+          }
+        })
+      }
+    })
+  } else {
+    uni.reLaunch({
+      url: '/pages/index/position',
+      fail: (err) => {
+        console.error('重新加载首页失败:', err)
+        uni.showToast({
+          title: '重新加载首页失败',
+          icon: 'none'
+        })
+      }
+    })
+  }
+}
 </script>
 
 <style scoped lang="scss">
@@ -90,19 +143,25 @@ onLoad(() => {
       left: 10px;
       width: 95px;
     }
-    &-title {
-      position: absolute;
-      width: 158px;
-      height: 51px;
-      line-height: 51px;
-      color: #0E100F;
-      font-style: normal;
-      text-transform: none;
-    }
+  }
+}
+.nav-box-title {
+  position: relative;
+  width: 100%;
+  display: flex;
+  align-items: center;
+  .title-text {
+    position: absolute;
+    width: 158px;
+    height: 51px;
+    line-height: 51px;
+    color: #0E100F;
+    font-style: normal;
+    text-transform: none;
   }
 }
 .text-left {
-	left: 10px;
+	left: 15px;
 	font-family: MiSans-Semibold;
 	font-weight: 600;
 	font-size: 38rpx;
@@ -111,6 +170,6 @@ onLoad(() => {
 	left: 50%;
 	transform: translateX(-50%);
 	font-family: MiSans-Medium;
-	font-size: 38rpx;
+	font-size: 33rpx;
 }
 </style>

+ 1 - 6
components/PositionList/index.vue

@@ -15,7 +15,7 @@
             </view>
           </view>
           <!-- 薪酬、工作地、学历、工作经验 -->
-          <view class="d-flex align-center ellipsis" style="max-width: 100%;">
+          <view class="d-flex ellipsis" style="max-width: 100%; align-items: center;">
             <view class="ss-m-r-20">
                 <span v-if="!item.job?.payFrom && !item.job?.payTo" class="salary-text MiSans-Bold">面议</span>
                 <span v-else class="salary-text MiSans-Bold">{{ item.job?.payFrom }}-{{ item.job?.payTo }}{{ item.job?.payName ? '/' + item.job?.payName : '' }}</span>
@@ -164,10 +164,8 @@ const handleClickEnt = (item) => {
 }
 
 .salary-text {
-	font-weight: bold;
 	font-size: 24rpx;
 	color: #00B760;
-	text-align: center;
 	font-style: normal;
 	text-transform: none;
 }
@@ -181,11 +179,8 @@ const handleClickEnt = (item) => {
   }
 }
 .desc-tag {
-	font-family: MiSans, MiSans;
-	font-weight: 400;
 	font-size: 24rpx;
 	color: #666666;
-	text-align: left;
 	font-style: normal;
 	text-transform: none;
 }

+ 1 - 1
layout/components/authModal/necessaryInfo/index.vue

@@ -2,7 +2,7 @@
 <template>
   <scroll-view class="scrollBox" scroll-y="true">
     <view class="content">
-      <view class="text-center ss-m-b-50 font-size-20 color-primary">请完善您的基本信息</view>
+      <view class="text-center ss-m-b-50 font-size-20 color-primary MiSans-Medium">请完善您的基本信息</view>
       <uni-forms
         ref="baseInfoRef"
         v-model="formData"

+ 3 - 3
layout/components/authModal/selectUserType/index.vue

@@ -2,18 +2,18 @@
 <template>
   <scroll-view class="scrollBox" scroll-y="true">
     <template v-if="showSelect">
-      <view class="text-center ss-m-t-50" style="color: #666; font-weight: 400; font-size: 18px">请选择当前角色</view>
+      <view class="text-center ss-m-t-50 MiSans-Medium" style="color: #666; font-weight: 400; font-size: 18px">请选择当前角色</view>
       <view class="ss-p-50">
         <uni-card class="ss-m-t-30" @tap="handleClickRole(0)">
           <view class="d-flex flex-column align-center ss-p-y-50">
             <image src="/static/svg/workMan.svg" class="svg ss-m-l-10"></image>
-            <view class="color-primary text-center" style="font-size: 24px">职场人士</view>
+            <view class="color-primary text-center MiSans-Medium" style="font-size: 24px">职场人士</view>
           </view>
         </uni-card>
         <uni-card class="ss-m-t-80" @tap="handleClickRole(1)">
           <view class="d-flex flex-column align-center ss-p-y-50">
             <image src="/static/svg/student.svg" class="svg ss-m-l-10"></image>
-            <view class="color-primary text-center" style="font-size: 24px">在校学生</view>
+            <view class="color-primary text-center MiSans-Medium" style="font-size: 24px">在校学生</view>
           </view>
         </uni-card>
       </view>

+ 1 - 1
layout/components/authModal/selectUserType/studentInfoForm.vue

@@ -2,7 +2,7 @@
 <template>
   <scroll-view class="scrollBox" scroll-y="true">
     <view class="content">
-      <view class="text-center ss-m-b-50 font-size-20 color-primary">请完善学生信息</view>
+      <view class="text-center ss-m-b-50 font-size-20 color-primary MiSans-Medium">请完善学生信息</view>
       <uni-forms
         ref="baseInfoRef"
         v-model="formData"

+ 1 - 1
main.js

@@ -22,7 +22,7 @@ const pinia = createPinia()
 pinia.use(piniaPluginPersistedstate)
 
 // 第三方字体库调用
-import { loadFont } from './utils/family.js'
+import { loadFont } from './utils/font.js'
 loadFont() // 下载字体
 
 export function createApp() {

+ 4 - 2
pages.json

@@ -255,7 +255,8 @@
 				{
 					"path": "companyDetail/index",
 					"style": {
-						"navigationBarTitleText": "企业详情"
+						"navigationBarTitleText": "企业详情",
+						"navigationStyle": "custom"
 					}
 				},
 				{
@@ -267,7 +268,8 @@
 				{
 					"path": "positionDetail/index",
 					"style": {
-						"navigationBarTitleText": "职位详情"
+						"navigationBarTitleText": "职位详情",
+						"navigationStyle": "custom"
 					}
 				},
 				{

+ 3 - 3
pages/index/my.vue

@@ -11,9 +11,9 @@
 							<image v-if="vip" src="/static/svg/vip.svg" class="vipIcon" @click.stop="handleToLink({path: '/pagesA/vip/index'})"></image>
 						</view>
 						<view  style="z-index: 1 !important;">
-							<view v-if="!useUserStore.isLogin" class="font-size-28rpx">
-								<view class="MiSans-Medium default-text-color">点击登录/注册</view>
-								<view class="MiSans-Normal color-666 10">Hi 欢迎登录门墩儿</view>
+							<view v-if="!useUserStore.isLogin" class="">
+								<view class="MiSans-Medium default-text-color font-size-28rpx">点击登录/注册</view>
+								<view class="MiSans-Normal color-666 ss-m-t-10" style="font-size: 24rpx;">Hi 欢迎登录门墩儿</view>
 							</view>
 							<view v-else class="MiSans-Medium font-size-20 default-text-color">{{ baseInfo?.name || userInfo?.phone }}</view>
 						</view>

+ 20 - 3
pages/index/position.vue

@@ -53,7 +53,7 @@
 </template>
 
 <script setup>
-import { ref, reactive, nextTick } from 'vue'
+import { ref, reactive, nextTick, onMounted } from 'vue'
 import SwiperAd from '@/components/SwiperAd'
 import FilterList from '@/components/FilterList'
 import PositionList from '@/components/PositionList'
@@ -66,7 +66,24 @@ import { getRewardEventList } from '@/utils/eventList'
 import { getMorningNewsArticle } from '@/api/content'
 import { getWebContent } from '@/api/common'
 
-const navbarHeight = ref(uni.getStorageSync('navbarHeight'))
+const navbarHeight = ref(0)
+
+onMounted(async () => {
+  try {
+    const res = await new Promise((resolve, reject) => {
+      uni.getStorage({
+        key: 'navbarHeight',
+        success: (result) => resolve(result),
+        fail: (err) => reject(err)
+      })
+    })
+    navbarHeight.value = res.data
+	  console.log(navbarHeight.value, '职位列表-导航栏高度')
+  } catch (error) {
+    console.error('读取本地缓存出错:', error)
+  }
+})
+
 onLoad(() => {
   wx.showShareMenu({
     withShareTicket: true,
@@ -100,7 +117,7 @@ const getSystemWebContent = async () => {
   const { data } = await getWebContent()
   swiperAdList.value = data?.appHomeCarousel || []
   // 是否展示弹窗广告
-  // showAdvertisePop.value = data && data.appAdvertisement && data.appAdvertisement.length ? true : false
+  showAdvertisePop.value = data && data.appAdvertisement && data.appAdvertisement.length ? true : false
 
   // 优选集团 
   preferredGroup.value = data?.appPreferredGroup || {}

+ 3 - 3
pagesA/balance/index.vue

@@ -6,11 +6,11 @@
           <view class="panel">
             <view>
               <uni-icons color="#f30" type="icon-renminbi1688" size="16" custom-prefix="iconfont"></uni-icons>
-              <text class="text">{{ balance.balance > 0 ? (balance?.balance / 100.0).toFixed(2) : 0 }}</text>
+              <text class="text MiSans-Medium">{{ balance.balance > 0 ? (balance?.balance / 100.0).toFixed(2) : 0 }}</text>
             </view>
-            <view>
+            <!-- <view>
               <button class="btn">充值</button>
-            </view>
+            </view> -->
           </view>
           <view class="list">
             <uni-list border-full>

+ 1 - 1
pagesA/collect/company.vue

@@ -5,7 +5,7 @@
         <view v-for="(item, index) in items" :key="index" class="list-item default-border defaultBgc" @click="jumpToEnterpriseDetail(item.id)">
           <view class="d-flex align-center">
             <view class="enterAvatar default-radius default-border">
-              <image class="enterAvatar default-radius default-border" :src="item.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'"></image>
+              <image class="enterAvatar default-radius" :src="item.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'"></image>
             </view>
             <view style="flex: 1;" class="ss-m-l-30">
               <view class="enterprise-name ellipsis MiSans-Semibold default-text-color">{{ formatName(item.anotherName || item.name) }}</view>

+ 139 - 101
pagesB/companyDetail/index.vue

@@ -1,116 +1,135 @@
 <template>
-  <view class="ss-p-b-30">
-    <view class="mar p-tb ss-m-x-30">
-      <view class="f-horizon">
-        <image style="width: 80px; height: 80px;" :src="info.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'"></image>
-        <view class="f-straight ss-m-l-10" style="flex: 1;position: relative;">
-          <view class="title-des font-weight-bold" style="max-width: 60vw;">{{ formatName(info.anotherName || info.name) }}</view>
-          <view class="color-999 ellipsis font-size-14" style="max-width: 60vw;">
-            <span>{{ !!info.industryName? info.industryName : ''}}</span>
-            <span class="ss-m-x-10" v-if="info?.industryName && info?.scaleName"> | </span>
-            <span>{{ info.scaleName || '' }}</span>
+  <view>
+    <Navbar title="企业详情" :textLeft="false" />
+    <view class="ss-p-b-30" :style="{'padding-top': navbarHeight + 'px'}">
+      <view class="commonBackground"></view>
+      <view class="defaultBgc" >
+        <view style="position: relative; z-index: 1;">
+          <view class="mar">
+            <view class="f-horizon ss-p-x-20">
+              <image 
+                class="default-border default-radius" 
+                style="width: 70px; height: 70px; z-index: 1;" 
+                :src="info.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'"
+              ></image>
+              <view class="f-straight ss-m-l-20" style="flex: 1;position: relative;">
+                <view class="title-des MiSans-Semibold" style="max-width: 60vw;;">{{ formatName(info.anotherName || info.name) }}</view>
+                <view class="color-999 ellipsis font-size-14 MiSans-Normal" style="max-width: 60vw;">
+                  <span class="ss-m-r-10">{{ !!info.industryName? info.industryName : ''}}</span>
+                  <span>{{ info.scaleName || '' }}</span>
+                </view>
+                <view class="collect-icon" @click="handleFollow">
+                  <uni-icons :type="isCollection ? 'heart-filled' : 'heart'" color="#00B760" size="25"></uni-icons>
+                </view>
+              </view>
+            </view>
           </view>
-          <view class="collect-icon" @click="handleFollow">
-            <uni-icons :type="isCollection ? 'heart-filled' : 'heart'" color="#fc6d5e" size="25"></uni-icons>
+        
+          <view class="ss-m-t-30">
+            <uni-segmented-control :current="current" class="MiSans-Normal" :values="items" @clickItem="changeControl" styleType="text" activeColor="#00B760"></uni-segmented-control>
           </view>
-        </view>
-      </view>
-    </view>
 
-    <view class="ss-m-t-30" style="background-color: #fff;">
-      <uni-segmented-control :current="current" class="MiSans-Normal" :values="items" @clickItem="changeControl" styleType="text" activeColor="#00B760"></uni-segmented-control>
-    </view>
-
-    <view v-if="current === 0" style="height: 20rpx; background-color: #f8f8fa;"></view>
-
-    <!-- 企业信息 -->
-    <view v-if="current === 0" class="ss-m-t-30 ss-m-x-30 ss-p-b-30">
-      <span v-for="(tag, i) in info.tagList" :key="i" class="ss-m-r-10 ss-m-b-10" style="display: inline-block;">
-        <uni-tag :text="tag" inverted="false" size="default" custom-style="background-color: #eef1f7;color:#7f828b;border-color:#eef1f7; display: inline-block;"/>
-      </span>
-      <!-- 简介 -->
-      <view class="ss-m-t-30">
-        <h4>企业简介</h4>
-        <view v-if="info.introduce" class="ss-m-t-20" style="color: #606371;" v-html="info.introduce?.replace(/\n/g, '</br>')"></view>
-        <view v-else></view>
-      </view>
-      <!-- 福利标签 -->
-      <view class="topLine"></view>
-      <view >
-        <h4>企业福利标签</h4>
-        <view class="ss-m-t-20" v-if="info?.welfareList?.length">
-          <span v-for="(tag, i) in info.welfareList" :key="i" class="ss-m-r-10 ss-m-b-10" style="display: inline-block;">
-            <uni-tag :text="tag" inverted="false" size="default" custom-style="background-color: #eef1f7;color:#7f828b;border-color:#eef1f7; display: inline-block;"/>
-          </span>
-        </view>
-        <view v-else></view>
-      </view>
-      <!-- 网址 -->
-      <view class="topLine"></view>
-      <view>
-        <h4>企业网址</h4>
-        <view class="ss-m-t-20">
-          <uni-link v-if="info.website" :href="info.website" :text="info.website" color="#00B760"></uni-link>
-          <view v-else></view>
-        </view>
-      </view>
-      <view class="topLine"></view>
-      <!-- 工商信息 -->
-      <view>
-        <h4>工商信息</h4>
-        <view v-if="info.business && Object.keys(info.business).length">
-          <view class="ss-m-y-15" v-for="k in business" :key="k.value">
-            <view>{{ k.name }}</view>
-            <view class="color-666 ss-m-t-5">
-              {{ info.business[k.value] ? k.value === 'establishmentTime' ? timesTampChange(info.business[k.value], 'Y-M-D') : info.business[k.value] : '' }}
+          <!-- 企业信息 -->
+          <view v-if="current === 0" class="ss-m-t-30 ss-m-x-30 ss-p-b-30">
+            <span v-for="(tag, i) in info.tagList" :key="i" class="ss-m-r-10 ss-m-b-10" style="display: inline-block;">
+              <uni-tag 
+                :text="tag" 
+                inverted="false" 
+                size="default" 
+                custom-style="background-color: #eef1f7;color:#7f828b;border-color:#eef1f7; display: inline-block;font-family: MiSans-Normal;"
+              />
+            </span>
+            <!-- 简介 -->
+            <view class="ss-m-t-30">
+              <h4 class="MiSans-Semibold font-size-17">企业简介</h4>
+              <view v-if="info.introduce" class="ss-m-t-20 htmlCss color-666 font-size-14 MiSans-Normal" v-html="info.introduce?.replace(/\n/g, '</br>')"></view>
+              <view v-else></view>
+            </view>
+            <!-- 福利标签 -->
+            <view class="topLine"></view>
+            <view >
+              <h4 class="MiSans-Semibold font-size-17">企业福利标签</h4>
+              <view class="ss-m-t-20" v-if="info?.welfareList?.length">
+                <span v-for="(tag, i) in info.welfareList" :key="i" class="ss-m-r-10 ss-m-b-10" style="display: inline-block;">
+                  <uni-tag 
+                    :text="tag" 
+                    inverted="false" 
+                    size="default" 
+                    custom-style="background-color: #eef1f7;color:#7f828b;border-color:#eef1f7; display: inline-block; font-family: MiSans-Normal;"
+                  />
+                </span>
+              </view>
+              <view v-else></view>
+            </view>
+            <!-- 网址 -->
+            <view class="topLine"></view>
+            <view>
+              <h4 class="MiSans-Semibold font-size-17">企业网址</h4>
+              <view class="ss-m-t-20">
+                <uni-link v-if="info.website" :href="info.website" :text="info.website" class="MiSans-Normal" color="#00B760"></uni-link>
+                <view v-else></view>
+              </view>
+            </view>
+            <view class="topLine"></view>
+            <!-- 工商信息 -->
+            <view>
+              <h4 class="MiSans-Semibold font-size-17">工商信息</h4>
+              <view v-if="info.business && Object.keys(info.business).length">
+                <view class="ss-m-y-15" v-for="k in business" :key="k.value">
+                  <view class="MiSans-Normal">{{ k.name }}</view>
+                  <view class="color-666 ss-m-t-5 MiSans-Normal font-size-14">
+                    {{ info.business[k.value] ? k.value === 'establishmentTime' ? timesTampChange(info.business[k.value], 'Y-M-D') : info.business[k.value] : '' }}
+                  </view>
+                </view>
+              </view>
+              <view v-else></view>
+            </view>
+            <!-- 地址 -->
+            <view class="topLine"></view>
+            <view>
+              <h4 class="MiSans-Semibold font-size-17">企业地址</h4>
+              <view class="ss-m-t-20" v-if="info?.business?.address">
+                <uni-icons type="map-pin-ellipse" color="#00B760" size="20"></uni-icons>
+                <span class="color-666 font-size-15 MiSans-Normal">{{ info?.business?.address }}</span>
+              </view>
+              <view v-else></view>
+            </view>
+            <view class="topLine"></view>
+            <!-- 企业相册 -->
+            <view>
+              <h4 class="MiSans-Semibold font-size-17">企业相册</h4>
+              <view class="ss-m-t-20" v-if="info?.albumList">
+                <swiper class="swiper-box" :indicator-dots="true" indicator-active-color="#fff">
+                  <swiper-item v-for="(item ,index) in info?.albumList" :key="index" style="overflow-x:hidden;overflow-y: auto;">
+                    <image v-if="checkIsImage(item)" class="ac-imgs" :src="item" @click="previewImage(index)"></image>
+                    <video v-else :id="'albumListVideo'+index" class="ac-imgs" :src="item" @error="videoErrorCallback" controls></video>
+                  </swiper-item>
+                </swiper>
+              </view>
+              <view v-else></view>
             </view>
           </view>
-        </view>
-        <view v-else></view>
-      </view>
-      <!-- 地址 -->
-      <view class="topLine"></view>
-      <view>
-        <h4>企业地址</h4>
-        <view class="ss-m-t-20" v-if="info?.business?.address">
-          <uni-icons type="map-pin-ellipse" color="#00B760" size="20"></uni-icons>
-          <span class="color-666 font-size-15">{{ info?.business?.address }}</span>
-        </view>
-        <view v-else></view>
-      </view>
-      <view class="topLine"></view>
-      <!-- 企业相册 -->
-      <view>
-        <h4>企业相册</h4>
-        <view class="ss-m-t-20" v-if="info?.albumList">
-          <swiper class="swiper-box" :indicator-dots="true" indicator-active-color="#fff">
-            <swiper-item v-for="(item ,index) in info?.albumList" :key="index" style="overflow-x:hidden;overflow-y: auto;">
-              <image v-if="checkIsImage(item)" class="ac-imgs" :src="item" @click="previewImage(index)"></image>
-              <video v-else :id="'albumListVideo'+index" class="ac-imgs" :src="item" @error="videoErrorCallback" controls></video>
-            </swiper-item>
-          </swiper>
-        </view>
-        <view v-else></view>
-      </view>
-    </view>
 
-    <!-- 招聘岗位 -->
-    <view v-if="current == 1">
-      <scroll-view class="scrollBox defaultBgc" scroll-y="true" @scrolltolower="loadingMore">
-        <view v-if="positionList.length > 0">
-          <PositionList class="pb-10" :list="positionList" :noMore="false"></PositionList>
-          <uni-load-more :status="status" />
-        </view>
-        <view v-else class="nodata-img-parents">
-          <image src="https://minio.citupro.com/dev/static/nodata.png" mode="widthFix" class="nodata-img-child"></image>
+          <!-- 招聘岗位 -->
+          <view v-if="current == 1">
+            <scroll-view class="scrollBox" scroll-y="true" @scrolltolower="loadingMore">
+              <view v-if="positionList.length > 0">
+                <PositionList class="pb-10" :list="positionList" :noMore="false"></PositionList>
+                <uni-load-more :status="status" />
+              </view>
+              <view v-else class="nodata-img-parents">
+                <image src="https://minio.citupro.com/dev/static/nodata.png" mode="widthFix" class="nodata-img-child"></image>
+              </view>
+            </scroll-view>
+          </view>
         </view>
-      </scroll-view>
+      </view>
     </view>
   </view>
 </template>
 
 <script setup>
-import { ref } from 'vue'
+import { ref, onMounted } from 'vue'
 import { onLoad, onShareAppMessage, onShareTimeline } from '@dcloudio/uni-app'
 import { getEnterpriseDetails, enterpriseClick, getEnterpriseSubscribeCheck, getEnterpriseUnsubscribe, getEnterpriseSubscribe } from '@/api/user'
 import { dealDictObjData } from '@/utils/position'
@@ -120,6 +139,25 @@ import { getAccessToken } from '@/utils/request'
 import PositionList from '@/components/PositionList'
 import { checkIsImage } from '@/utils'
 import { formatName } from '@/utils/getText'
+import Navbar from '@/components/Navbar'
+
+const navbarHeight = ref(0)
+
+onMounted(async () => {
+  try {
+    const res = await new Promise((resolve, reject) => {
+      uni.getStorage({
+        key: 'navbarHeight',
+        success: (result) => resolve(result),
+        fail: (err) => reject(err)
+      })
+    })
+    navbarHeight.value = res.data
+	  console.log(navbarHeight.value, '企业详情-导航栏高度')
+  } catch (error) {
+    console.error('读取本地缓存出错:', error)
+  }
+})
 
 const current = ref(0)
 const items = ['企业介绍', '招聘职位']
@@ -243,7 +281,7 @@ const videoErrorCallback = (e) =>{
 <style scoped lang="scss">
 .title-des {
   color: #0E100F;
-  font-size: 17px;
+  font-size: 30rpx;
   margin-right: 30px;
   margin-top: 1px;
   vertical-align: middle;

+ 265 - 227
pagesB/positionDetail/index.vue

@@ -1,226 +1,242 @@
 <template>
-  <layout-page>
-    <scroll-view class="scrollBox" style="position:relative;">
-      <view class="box">
-        <view v-if="loading" class="vertical80-center">{{ loadingText }}</view>
-        <view v-else>
-          <view class="mt-5" style="display: flex;">
-            <!-- 赏金 -->
-            <view v-if="info.hire && info.hirePrice" class="hirePrice ss-m-r-10 d-flex align-center">
-              <view class="iconfont icon-a-1_zhaopin ss-m-r-10" style="color: #e03506; font-size: 20px;"></view>
-              <view>{{ `赏金:${commissionCalculation(info.hirePrice / 100, 1)}元` }}</view>
-            </view>
-            <image v-if="isJobFair" src="/static/svg/jobFair.svg" class="ss-m-r-10" style="width: 30px; height: 30px;"></image>
-            <!-- 职位名称 -->
-            <h2 class="JobName" style="flex: 1;">{{ formatName(info.name) }}</h2>
-          </view>
-          <!-- 职位地区 -->
-          <view class="d-flex justify-space-between mt-5 align-center">
-            <view style="font-size: 14px; flex: 1; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; margin-right: 30px;">
-              <span>
-                <span>{{positionInfo?.area?.str ?? '全国' }}</span>
-                <span class="viewider-mx" v-if="positionInfo?.eduName">|</span>
-                <span>{{positionInfo?.eduName }}</span>
-                <span class="viewider-mx" v-if="positionInfo?.expName">|</span>
-                <span>{{positionInfo?.expName }}</span>
-              </span>
-            </view>
-          </view>
-          <view class="d-flex justify-space-between mt-5 align-center">
-            <!-- 收藏职位 -->
-            <view @click="handleCollection" style="width: 36px;">
-              <uni-icons
-                :type="isCollection ? 'heart-filled' : 'heart'"
-                color="#fc6d5e"
-                class="mr"
-                size="25"
-              ></uni-icons>
-            </view>
-            <!-- 薪资 -->
-            <view>
-              <span v-if="!info.payFrom && !info.payTo" class="salary w-600">面议</span>
-              <span v-else class="salary w-600">{{ info.payFrom }}-{{ info.payTo }}/{{ positionInfo.payName }}</span>
-            </view>
-          </view>
-          <view class="font-size-13 color-999 ss-m-t-10" style="text-align: end;">更新时间:{{ timesTampChange(info?.refreshTime || info.updateTime, 'Y-M-D h:m') }}</view>
-          <!-- 标签 -->
-          <view class="tagList mt">
-            <view class="tag" v-for="(tag,i) in info?.tagList || []" :key="'tagList' + i">
-              {{ tag }}
-            </view>
-          </view>
-          <!-- 企业信息 -->
-          <view class="topLine mt-5 d-flex" @click="jumpToEnterpriseDetail(info.enterprise.id)">
-            <view class="avatarBox">
-              <image style="width: 40px; height: 40px;" :src="info.enterprise?.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'"></image>
-            </view>
-            <view >
-              <view class="contact-name">{{ info.contact?.name }}</view>
-              <view class="contact-info">{{ formatName(info.enterprise?.anotherName || info.enterprise?.name) }} {{ info.contact?.postNameCn ? '· ' + info.contact?.postNameCn : '' }}</view>
-            </view>
-          </view>
-          <!-- 岗位职责 -->
-          <view class="topLine fs14 mt-5">
-            <view class="fs15 w-600 my5">岗位职责</view>
-            <view v-if="!info.content"></view>
-            <rich-text v-else class="htmlCss" :nodes="cleanedHtml(info.content)"></rich-text>
-          </view>
-          <!-- 岗位要求 -->
-          <view class="topLine mt-5">
-            <view class="fs15 w-600 my5">岗位要求</view>
-            <view v-if="!info.requirement"></view>
-            <rich-text v-else class="htmlCss" :nodes="cleanedHtml(info.requirement)"></rich-text>
-          </view>
-          <!-- 工作地址 -->
-          <view class="topLine mt-5">
-            <view class="fs15 w-600 my5">工作地址</view>
-            <view class="my10">
-              <uni-icons
-                type="map-pin-ellipse"
-                color="#00B760"
-                class="mr"
-                size="25"
-              ></uni-icons>
-              <span style="color: var(--color-666);font-size: 15px;line-height: 26px;">{{ info.address || '' }}</span>
+  <view>
+    <Navbar title="职位详情" :textLeft="false" />
+    <layout-page>
+      <view :style="{'padding-top': navbarHeight + 'px'}">
+        <view class="defaultBgc">
+          <scroll-view class="scrollBox">
+            <view class="commonBackground"></view>
+            <view class="box" style="position: relative; z-index: 1;">
+              <view v-if="loading" class="vertical80-center">{{ loadingText }}</view>
+              <view v-else>
+                <view style="display: flex;">
+                  <!-- 赏金 -->
+                  <view v-if="info.hire && info.hirePrice" class="hirePrice ss-m-r-10 d-flex align-center">
+                    <view class="iconfont icon-a-1_zhaopin ss-m-r-10" style="color: #e03506; font-size: 20px;"></view>
+                    <view class="MiSans-Normal">{{ `赏金:${commissionCalculation(info.hirePrice / 100, 1)}元` }}</view>
+                  </view>
+                  <image v-if="isJobFair" src="/static/svg/jobFair.svg" class="ss-m-r-10" style="width: 30px; height: 30px;"></image>
+                  <!-- 职位名称 -->
+                  <h2 class="JobName MiSans-Semibold" style="flex: 1;">{{ formatName(info.name) }}</h2>
+                </view>
+                <!-- 职位地区 -->
+                <view class="d-flex justify-space-between mt-5 align-center">
+                  <view class="color-666" style="font-size: 28rpx; flex: 1; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; margin-right: 30px;">
+                    <span>
+                      <span class="MiSans-Normal">{{positionInfo?.area?.str ?? '全国' }}</span>
+                      <span class="viewider-mx" v-if="positionInfo?.eduName">|</span>
+                      <span class="MiSans-Normal">{{positionInfo?.eduName }}</span>
+                      <span class="viewider-mx" v-if="positionInfo?.expName">|</span>
+                      <span class="MiSans-Normal">{{positionInfo?.expName }}</span>
+                    </span>
+                  </view>
+                </view>
+                <view class="d-flex justify-space-between mt-5 align-center">
+                  <!-- 收藏职位 -->
+                  <view @click="handleCollection" class="d-flex align-center">
+                    <uni-icons
+                      :type="isCollection ? 'heart-filled' : 'heart'"
+                      color="#00B760"
+                      class="ss-m-r-10"
+                      size="25"
+                    ></uni-icons>
+                    <span class="color-primary MiSans-Normal">{{ isCollection  ? '取消收藏' : '收藏' }}</span>
+                  </view>
+                  <!-- 薪资 -->
+                  <view>
+                    <span v-if="!info.payFrom && !info.payTo" class="salary MiSans-Medium">面议</span>
+                    <span v-else class="salary MiSans-Medium">{{ info.payFrom }}-{{ info.payTo }}/{{ positionInfo.payName }}</span>
+                  </view>
+                </view>
+                <view class="font-size-13 color-999 ss-m-t-10 MiSans-Normal" style="text-align: end;">更新时间:{{ timesTampChange(info?.refreshTime || info.updateTime, 'Y-M-D h:m') }}</view>
+                <!-- 标签 -->
+                <view class="tagList mt">
+                  <view class="tag MiSans-Normal" v-for="(tag,i) in info?.tagList || []" :key="'tagList' + i">
+                    {{ tag }}
+                  </view>
+                </view>
+                <!-- 企业信息 -->
+                <view class="topLine mt-5 d-flex align-center" style="position: relative;" @click="jumpToEnterpriseDetail(info.enterprise.id)">
+                  <view class="avatarBox ss-m-t-5">
+                    <image class="default-border default-radius" style="width: 100rpx; height: 100rpx;" :src="info.enterprise?.logoUrl || 'https://minio.citupro.com/dev/menduner/company-avatar.png'"></image>
+                  </view>
+                  <view style="margin-right: 20px;">
+                    <view class="contact-name MiSans-Medium default-text-color">{{ info.contact?.name }}</view>
+                    <view class="contact-info MiSans-Normal color-666 font-size-13">
+                      {{ formatName(info.enterprise?.anotherName || info.enterprise?.name) }} {{ info.contact?.postNameCn ? '· ' + info.contact?.postNameCn : '' }}
+                    </view>
+                  </view>
+                  <view style="position: absolute; right: 0px;">
+                    <uni-icons type="right" size="20" color="#666"></uni-icons>
+                  </view>
+                </view>
+                <!-- 岗位职责 -->
+                <view class="topLine fs14 mt-5">
+                  <view class="MiSans-Semibold my5 font-size-17 title-text">岗位职责</view>
+                  <view v-if="!info.content"></view>
+                  <rich-text v-else class="htmlCss" :nodes="cleanedHtml(info.content)"></rich-text>
+                </view>
+                <!-- 岗位要求 -->
+                <view class="topLine mt-5">
+                  <view class="MiSans-Semibold my5 font-size-17 title-text">岗位要求</view>
+                  <view v-if="!info.requirement"></view>
+                  <rich-text v-else class="htmlCss" :nodes="cleanedHtml(info.requirement)"></rich-text>
+                </view>
+                <!-- 工作地址 -->
+                <view class="topLine mt-5">
+                  <view class="fs15 MiSans-Semibold my5">工作地址</view>
+                  <view class="my10">
+                    <uni-icons
+                      type="map-pin-ellipse"
+                      color="#00B760"
+                      class="mr"
+                      size="25"
+                    ></uni-icons>
+                    <span class="MiSans-Normal" style="color: var(--color-666);font-size: 15px;line-height: 26px;">{{ info.address || '' }}</span>
+                  </view>
+                </view>
+              </view>
             </view>
-          </view>
+          </scroll-view>
         </view>
       </view>
-    </scroll-view>
-    <!-- 分享 投递 -->
-    <view class="bottom-sticky" v-if="!loading && jobId">
-      <view class="bottom-content">
-        <!-- 已登录可以分享 -->
-        <button v-if="beenLogin" class="bottom-content-tool shareButtonCss" open-type="share">
-          <uni-icons type="redo-filled" size="24" color="#00B760" style="line-height: 24px;"/>
-          <span style="color:#00B760;font-weight:bold;line-height: 22px;">分享</span>
-        </button>
-        <!-- 未登录点击分享拉起登录 -->
-        <view v-else @click="handleClickShare" class="bottom-content-tool">
-          <uni-icons type="redo-filled" size="24" color="#00B760"/>
-          <span style="color:#00B760;font-weight:bold;">分享</span>
+      
+
+      <!-- 分享 投递 -->
+      <view class="bottom-sticky" style="z-index: 2;" v-if="!loading && jobId">
+        <view class="bottom-content">
+          <!-- 已登录可以分享 -->
+          <button v-if="beenLogin" class="bottom-content-tool shareButtonCss" open-type="share">
+            <uni-icons type="redo" size="30" color="#00B760" style="line-height: 30px;"/>
+            <span class="MiSans-Normal" style="color:#00B760;line-height: 22px;">分享</span>
+          </button>
+          <!-- 未登录点击分享拉起登录 -->
+          <view v-else @click="handleClickShare" class="bottom-content-tool">
+            <uni-icons type="redo" size="30" color="#00B760"/>
+            <span class="MiSans-Normal" style="color:#00B760;">分享</span>
+          </view>
+          <button class="btnStyle bgButtons MiSans-Medium" type="primary" plain="true" @tap="handleSend">立即沟通</button>
+          <button v-if="delivery" :disabled="true" class="buttons btnStyle disable MiSans-Medium">我已投递</button>
+          <button v-else class="buttons btnStyle MiSans-Medium" type="primary" @click="handleDelivery">我要投递</button>
         </view>
-        <button class="btnStyle bgButtons" type="primary" plain="true" @tap="handleSend">立即沟通</button>
-        <button v-if="delivery" :disabled="true" class="buttons btnStyle disable">我已投递</button>
-        <button v-else class="buttons btnStyle" type="primary" @click="handleDelivery">我要投递</button>
       </view>
-    </view>
-    <uni-popup
-        ref="poster"
-        type="center"
-        class="f-straight"
-        style="position: relative;"
-    >
-        <canvas
-          :style="{
-            width:`${appInfo.windowWidth}px;`,
-            height:`${appInfo.windowHeight}px;margin-left:-9999px; margin-top:-99.5vh;`
-          }" canvas-id="firstCanvas" id="firstCanvas"></canvas>
-        <image
-          :style="{ width:`${appInfo.windowWidth}px;`, height:`${appInfo.windowHeight*.9}px;`}"
-          :src="imgSrc"
-          mode="aspectFit"
-        />
-        <!-- <uni-icons v-if="!!imgSrc" type="clear" size="35" color="#FFF" style="position: absolute;top: 10px;right: 28px;" @click="posterClose"></uni-icons> -->
-    </uni-popup>
-    
-    <!-- 选择简历 -->
-    <uni-popup ref="popup" background-color="#fff" :mask-click="false" >
-      <view class="dialogBox" style="width: 86vw;">
-        <view class="dialog-title border-bottom">
-          <view class="title">选择简历</view>
-          <uni-icons type="close" color="grey" size="26" @click="popupClose" />
-        </view>
-        <!-- <view style="height: 1px; margin: 0 20rpx; background-color: #dedede;"></view> -->
-        <scroll-view class="dialog-content" scroll-y="true" style="max-height: 50vh; width: auto;">
-          <uni-card
-            v-for="(item, index) in resumeList"
-            :key="index"
-            shadow="0px 0px 3px 1px rgba(0,0,0,0.1)"
-            :is-shadow="true"
-            :border='false'
-             background-color="red"
-            :class="{'selected': selectIndex === index}"
-            @click="selectIndex = index"
-          >
-            <view class="d-flex align-center">
-              <view style="flex: 1;">
-                <view style="font-weight: bold;">
-                  <uni-icons v-if="selectIndex === index" color="green" type="checkmarkempty" size="18"></uni-icons>
-                  {{ item.title }}
+      
+      <uni-popup
+          ref="poster"
+          type="center"
+          class="f-straight"
+          style="position: relative;"
+      >
+          <canvas
+            :style="{
+              width:`${appInfo.windowWidth}px;`,
+              height:`${appInfo.windowHeight}px;margin-left:-9999px; margin-top:-99.5vh;`
+            }" canvas-id="firstCanvas" id="firstCanvas"></canvas>
+          <image
+            :style="{ width:`${appInfo.windowWidth}px;`, height:`${appInfo.windowHeight*.9}px;`}"
+            :src="imgSrc"
+            mode="aspectFit"
+          />
+      </uni-popup>
+      
+      <!-- 选择简历 -->
+      <uni-popup ref="popup" background-color="#fff" :mask-click="false" >
+        <view class="dialogBox" style="width: 86vw;">
+          <view class="dialog-title border-bottom">
+            <view class="title MiSans-Normal">选择简历</view>
+            <uni-icons type="close" color="grey" size="26" @click="popupClose" />
+          </view>
+          <!-- <view style="height: 1px; margin: 0 20rpx; background-color: #dedede;"></view> -->
+          <scroll-view class="dialog-content" scroll-y="true" style="max-height: 50vh; width: auto;">
+            <uni-card
+              v-for="(item, index) in resumeList"
+              :key="index"
+              shadow="0px 0px 3px 1px rgba(0,0,0,0.1)"
+              :is-shadow="true"
+              :border='false'
+              background-color="red"
+              :class="{'selected': selectIndex === index}"
+              @click="selectIndex = index"
+            >
+              <view class="d-flex align-center">
+                <view style="flex: 1;">
+                  <view class="MiSans-Mediuml default-text-color">
+                    <uni-icons v-if="selectIndex === index" color="green" type="checkmarkempty" size="18"></uni-icons>
+                    {{ item.title }}
+                  </view>
+                  <view class="MiSans-Normal color-666">上传时间:{{ timesTampChange(item.createTime, 'Y-M-D') }}</view>
+                </view>
+                <view class="ss-m-l-30" style="width: 60rpx;">
+                  <uni-icons @click="preview(item.url)" type="eye" size="24"></uni-icons>
                 </view>
-                <view>上传时间:{{ timesTampChange(item.createTime, 'Y-M-D') }}</view>
-              </view>
-              <view class="ss-m-l-30" style="width: 60rpx;">
-                <uni-icons @click="preview(item.url)" type="eye" size="24"></uni-icons>
               </view>
-            </view>
-          </uni-card>
-          <view class="selectOnline" @click="handleUpload">选取微信聊天文件</view>
-        </scroll-view>
-        <view class="dialog-bottom" @click="deliverySubmit()">确认投递</view>
-      </view>
-    </uni-popup>
-
-    <!-- 实习到岗时间 -->
-    <uni-popup ref="practicePopup" :mask-click="false" >
-      <view class="dialogBox" style="width: 86vw; border-radius: 8px; background-color: #fff;">
-        <view class="dialog-title border-bottom">
-          <view class="title">实习到岗信息</view>
-          <uni-icons type="close" color="grey" size="26" @click="practicePopupClose" />
+            </uni-card>
+            <view class="selectOnline MiSans-Normal" @click="handleUpload">选取微信聊天文件</view>
+          </scroll-view>
+          <view class="dialog-bottom MiSans-Medium" @click="deliverySubmit()">确认投递</view>
         </view>
-        <scroll-view class="dialog-content" scroll-y="true" style="max-height: 50vh;">
-          <view class="ss-p-x-50">
-            <studentDeliveryForm ref="studentDeliveryFormRef" />
+      </uni-popup>
+
+      <!-- 实习到岗时间 -->
+      <uni-popup ref="practicePopup" :mask-click="false" >
+        <view class="dialogBox" style="width: 86vw; border-radius: 8px; background-color: #fff;">
+          <view class="dialog-title border-bottom">
+            <view class="title MiSans-Normal">实习到岗信息</view>
+            <uni-icons type="close" color="grey" size="26" @click="practicePopupClose" />
           </view>
-        </scroll-view>
-        <view class="d-bottom" @click="beforeHandleUploadSubmit()">确 认</view>
-      </view>
-    </uni-popup>
-
-    <!-- 上传简历 -->
-    <uni-popup ref="uploadPopup" type="dialog">
-			<uni-popup-dialog
-        type="warn"
-        cancelText="取消"
-        confirmText="确定"
-        title="系统提示"
-        content="您还未上传过简历,是否选取微信聊天文件投递?"
-        @confirm="handleUpload"
-				@close="uploadPopup.close()"
-      ></uni-popup-dialog>
-		</uni-popup>
-
-    <!-- 职位分享 -->
-    <uni-popup ref="sharePopup" type="share">
-      <uni-popup-share title="分享到">
-        <view class="share-pop">
-          <button class="f-straight" open-type="share">
-            <view class="share-round share-round-1" >
-              <uni-icons type="weixin" color="#FFF" size="30" />
+          <scroll-view class="dialog-content" scroll-y="true" style="max-height: 50vh;">
+            <view class="ss-p-x-50">
+              <studentDeliveryForm ref="studentDeliveryFormRef" />
             </view>
-            <view style="font-size:12px;">微信</view>
-          </button>
+          </scroll-view>
+          <view class="d-bottom MiSans-Medium" @click="beforeHandleUploadSubmit()">确 认</view>
         </view>
-      </uni-popup-share>
-    </uni-popup>
-
-    <!-- 当前是赏金职位时,询问是否登录,不登录则没有赏金 -->
-    <uni-popup ref="loginPopup" type="dialog">
-			<uni-popup-dialog 
-        type="warn" 
-        cancelText="取消" 
-        confirmText="登录" 
-        title="系统提示" 
-        content="当前为赏金职位,不登录进行分享将无法获得赏金,是否登录?" 
-        @confirm="handleLoginConfirm"
-				@close="handleLoginClose" />
-		</uni-popup>
-
-    <view class="hideCanvasView">
-      <canvas class="shareCanvas" canvas-id="shareCanvas" style="width: 452px; height: 362px;"></canvas>
-    </view>
-  </layout-page>
+      </uni-popup>
+
+      <!-- 上传简历 -->
+      <uni-popup ref="uploadPopup" type="dialog">
+        <uni-popup-dialog
+          type="warn"
+          cancelText="取消"
+          confirmText="确定"
+          title="系统提示"
+          content="您还未上传过简历,是否选取微信聊天文件投递?"
+          @confirm="handleUpload"
+          @close="uploadPopup.close()"
+        ></uni-popup-dialog>
+      </uni-popup>
+
+      <!-- 职位分享 -->
+      <uni-popup ref="sharePopup" type="share">
+        <uni-popup-share title="分享到">
+          <view class="share-pop">
+            <button class="f-straight" open-type="share">
+              <view class="share-round share-round-1" >
+                <uni-icons type="weixin" color="#FFF" size="30" />
+              </view>
+              <view style="font-size:12px;">微信</view>
+            </button>
+          </view>
+        </uni-popup-share>
+      </uni-popup>
+
+      <!-- 当前是赏金职位时,询问是否登录,不登录则没有赏金 -->
+      <uni-popup ref="loginPopup" type="dialog">
+        <uni-popup-dialog 
+          type="warn" 
+          cancelText="取消" 
+          confirmText="登录" 
+          title="系统提示" 
+          content="当前为赏金职位,不登录进行分享将无法获得赏金,是否登录?" 
+          @confirm="handleLoginConfirm"
+          @close="handleLoginClose" />
+      </uni-popup>
+
+      <view class="hideCanvasView">
+        <canvas class="shareCanvas" canvas-id="shareCanvas" style="width: 452px; height: 362px;"></canvas>
+      </view>
+    </layout-page>
+  </view>
 </template>
 
 <script setup>
@@ -229,7 +245,8 @@ import { timesTampChange } from '@/utils/date'
 import { preview } from '@/utils/preview'
 import { uploadFile } from '@/api/file'
 import layoutPage from '@/layout'
-import { ref, watch, computed } from 'vue';
+import Navbar from '@/components/Navbar'
+import { ref, watch, computed, onMounted } from 'vue';
 import {
   jobCvRelSend,
   getPositionDetails,
@@ -251,6 +268,24 @@ import { formatName } from '@/utils/getText'
 import studentDeliveryForm from '@/components/studentDeliveryForm'
 // import { getShareQueryById } from '@/api/jobFair.js'
 
+const navbarHeight = ref(0)
+
+onMounted(async () => {
+  try {
+    const res = await new Promise((resolve, reject) => {
+      uni.getStorage({
+        key: 'navbarHeight',
+        success: (result) => resolve(result),
+        fail: (err) => reject(err)
+      })
+    })
+    navbarHeight.value = res.data
+	  console.log(navbarHeight.value, '职位详情-导航栏高度')
+  } catch (error) {
+    console.error('读取本地缓存出错:', error)
+  }
+})
+
 const useUserStore = userStore()
 const sharePopup = ref()
 const loading = ref(false)
@@ -738,6 +773,24 @@ const handleLoginConfirm = () => {
 
 <style scoped lang="scss">
 @import '../../static/style/position/index.scss';
+
+.commonBackground {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 160px;
+  &::before {
+    content: '';
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    background: linear-gradient(180deg, #BCFEDE, #F7F8FA);
+  }
+}
+
 .hideCanvasView{
 	position: relative;
 }
@@ -761,7 +814,6 @@ const handleLoginConfirm = () => {
   .bgButtons {
     border: 2rpx solid #00B760;
     color: #00B760;
-    // background: #FFF;
     border-radius: 50rpx;
   }
   .shareButtonCss {
@@ -806,20 +858,6 @@ const handleLoginConfirm = () => {
         background-color:#3693cd;
     }
 }
-.preview {
-  position: fixed;
-  z-index: 9;
-  height: 100vh;
-  width: 100vw;
-  left: 0;
-  top: 0;
-  .image {
-    position: absolute;
-    width: 80%;
-    left: 10%;
-    top: 100rpx;
-  }
-}
 .border-bottom {
   border-bottom: 1px solid #eee;
 }

+ 1 - 1
pagesB/preferredGroup/index.vue

@@ -60,7 +60,7 @@
 		<!-- 招聘职位 -->
 		<view class="ss-m-t-50">
 			<uni-title class="ss-m-b-30 color-666" type="h1" title="招聘职位" align="center"></uni-title>
-			<scroll-view class="scrollBox defaultBgc" scroll-y="true" @scrolltolower="loadingMore">
+			<scroll-view class="scrollBox" scroll-y="true" @scrolltolower="loadingMore">
 			  <view v-if="positionList.length > 0">
 			    <PositionList class="pb-10" :list="positionList" :noMore="false"></PositionList>
 			    <uni-load-more :status="status" />

BIN
static/iconfont.ttf


+ 15 - 35
static/iconfont.wxss

@@ -1,5 +1,5 @@
 @font-face {
-  font-family: "iconfont"; /* Project id 4679810 */
+  font-family: "iconfont";
   src: url('/static/iconfont.ttf') format('truetype');
 }
 
@@ -11,36 +11,32 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
-.icon-qianbao1:before {
-  content: "\e607";
+.icon-left:before {
+  content: "\e673";
 }
 
-.icon-weixinzhifu:before {
-  content: "\e6e8";
+.icon-shouye:before {
+  content: "\e60c";
 }
 
-.icon-alipay:before {
-  content: "\e601";
+.icon-icon-test:before {
+  content: "\eae3";
 }
 
-.icon-zixun:before {
-  content: "\e606";
+.icon-xueshengjibenxinxi:before {
+  content: "\e8b1";
 }
 
-.icon-wo-suoshuqiye:before {
-  content: "\e638";
-}
-
-.icon-qiyezhuanqu:before {
-  content: "\e62c";
+.icon-qianbao1:before {
+  content: "\e607";
 }
 
-.icon-zhaopinqiuzhi:before {
-  content: "\ffb6";
+.icon-weixinzhifu:before {
+  content: "\e6e8";
 }
 
-.icon-lianxikefu:before {
-  content: "\e609";
+.icon-alipay:before {
+  content: "\e601";
 }
 
 .icon-vip:before {
@@ -87,22 +83,6 @@
   content: "\e611";
 }
 
-.icon-dunpai1:before {
-  content: "\e610";
-}
-
-.icon-dunpai:before {
-  content: "\e604";
-}
-
-.icon-mn_dunpai_fill:before {
-  content: "\e600";
-}
-
-.icon-hongsedunpai:before {
-  content: "\e622";
-}
-
 .icon-arrow-sortdown-smal:before {
   content: "\e877";
 }

+ 8 - 0
static/style/index.scss

@@ -125,6 +125,14 @@
   }
 }
 
+// 表单文字样式设置
+.uni-forms-item__label {
+  font-family: MiSans-Normal;
+}
+.uni-forms-item__content {
+  font-family: MiSans-Normal;
+}
+
 .nodata-img-parent{
 	height: 90vh;
 	display: flex;

+ 20 - 26
static/style/position/index.scss

@@ -5,18 +5,7 @@
 .fs14 { font-size: 14px; }
 .fs15 { font-size: 15px; }
 .box {
-  padding: 10px 30rpx 100px;
-  background-color: #fff;
-}
-.shareCss {
-  background-color: #00B760 !important;
-  .box {
-    margin: 20px 24px;
-    border-radius: 10px;
-    background-color: #fff;
-    height: 194px;
-    overflow: hidden;
-  }
+  padding: 0 30rpx 100px;
 }
 
 .JobName {
@@ -60,10 +49,11 @@
   white-space: pre-wrap;
   word-break: break-all;
   line-height: 28px;
-  color: var(--color-333);
+  color: #666;
   font-size: 15px;
   text-align: justify;
   letter-spacing: 0;
+  font-family: MiSans-Normal;
 }
 
 //底部按钮公用定位
@@ -102,9 +92,9 @@
 
 }
 .avatarBox{
-	max-width: 40px;
-	max-height: 40px;
-  margin: 0 10px;
+	max-width: 100rpx;
+	max-height: 100rpx;
+  margin: 0 20px 0 0;
 }
 .avatar{
 	width: 40px;
@@ -125,25 +115,29 @@
   line-height: 41px;
   font-weight: 600;
   height: auto;
+  font-size: 34rpx;
   display: inline-block;
   vertical-align: sub;
 }
-.list-shape {
-	padding: 10px 30rpx 10px;
-  margin-top: 10px;
-  background-color: #fff;
-  .titleBox {
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-  }
-}
 .viewider-mx{
 	margin: 0 10rpx;
 }
 .viewider {
 	color:#e4d4d2;
 }
+.title-text {
+  position: relative;
+  padding-left: 10px;
+  &::before {
+    content: '';
+    position: absolute;
+    left: 0;
+    top: 4px;
+    height: 17px;
+    width: 3px;
+    background-color: #00B760;
+  }
+}
 
 //公司名称
 .cer-end{

+ 2 - 4
utils/config.js

@@ -4,7 +4,7 @@ const config = {
   produce: {
     baseUrl: 'https://www.menduner.com',
     previewUrl: 'https://kkfileview.menduner.com/', // 预览路径
-    fontBaseUrl: 'https://menduner.citupro.com:3443/dev/menduner/font/'
+    fontBaseUrl: ''
   },
   httpsTest: {
     baseUrl: 'https://menduner.citupro.com:2443',
@@ -26,6 +26,4 @@ export const baseUrl = envObj.baseUrl
 // 租户id
 export const tenantId = '155'
 
-export const apiPath = '/app-api'
-
-export const adminPath = '/admin-api'
+export const apiPath = '/app-api'

+ 0 - 0
utils/family.js → utils/font.js