Compare commits

...

2 Commits

Author SHA1 Message Date
francis_fh
910862cb5f 分享功能开发 2026-01-27 17:11:35 +08:00
francis_fh
fb88fdbb89 分享功能开发 2026-01-27 17:10:58 +08:00
4 changed files with 29 additions and 9 deletions

View File

@@ -9,6 +9,7 @@ import globalFunction from '@/common/globalFunction'
import '@/lib/string-similarity.min.js'
import similarityJobs from '@/utils/similarity_Job.js';
import config from '@/config.js';
import shareMixin from './mixins/share.js';
// 组件
import AppLayout from './components/AppLayout/AppLayout.vue';
import Empty from './components/empty/empty.vue';
@@ -36,6 +37,9 @@ import { getDict } from '@/apiRc/system/dict.js';
export function createApp() {
const app = createSSRApp(App)
// 注册全局分享混入
app.mixin(shareMixin)
app.component('AppLayout', AppLayout)
app.component('Empty', Empty)
app.component('NoBouncePage', NoBouncePage)

16
mixins/share.js Normal file
View File

@@ -0,0 +1,16 @@
export default {
onShareAppMessage() {
return {
title: '喀什智慧就业平台',
path: '/pages/index/index',
imageUrl: ''
};
},
onShareTimeline() {
return {
title: '喀什智慧就业平台',
path: '/pages/index/index',
imageUrl: ''
};
}
};

View File

@@ -32,9 +32,9 @@
<!-- 控制栏 -->
<view class="controls">
<!-- <text @click="togglePlay">{{ isPlaying ? '暂停' : '播放' }}</text>
<text @click="toggleFullScreen">{{ isFullScreen ? '退出全屏' : '全屏' }}</text> -->
<text @click="close">关闭</text>
<!-- <view class="control-text" @click="togglePlay">{{ isPlaying ? '暂停' : '播放' }}</view>
<view class="control-text" @click="toggleFullScreen">{{ isFullScreen ? '退出全屏' : '全屏' }}</view> -->
<view class="control-text" @click="close">关闭</view>
</view>
</view>
</template>
@@ -180,7 +180,7 @@ defineExpose({ open });
justify-content: space-around;
}
.controls text {
.controls .control-text {
color: #fff;
font-size: 24rpx;
padding: 8rpx 16rpx;

View File

@@ -241,7 +241,7 @@
import point from '@/static/icon/point.png';
import VideoPlayer from './component/videoPlayer.vue';
import { reactive, inject, watch, ref, onMounted, computed } from 'vue';
import { onLoad, onShow, onHide } from '@dcloudio/uni-app';
import { onLoad, onShow, onHide, onShareAppMessage, onShareTimeline } from '@dcloudio/uni-app';
import dictLabel from '@/components/dict-Label/dict-Label.vue';
import RadarMap from './component/radarMap.vue';
import { storeToRefs } from 'pinia';
@@ -364,10 +364,10 @@ function getCompanyIsAJobs(companyId) {
}
function getTextWidth(text, size = 12) {
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
context.font = `${12}px Arial`;
return -(context.measureText(text).width / 2) - 20; // 计算文字中心点
// 在小程序环境中document 对象不存在,使用估算方法
// 简单估算:每个字符大约占 8px 宽度
const estimatedWidth = text.length * 8;
return -(estimatedWidth / 2) - 20; // 计算文字中心点
}
function getCompetivetuveness(jobId) {