页面适配

This commit is contained in:
2025-12-12 13:39:23 +08:00
parent 60b4d2bef0
commit 9bc3c0fb7c
18 changed files with 574 additions and 1650 deletions

View File

@@ -1,5 +1,8 @@
<template>
<view>
<!-- #ifdef H5 -->
<transition-group name="blur-fade-stagger" tag="view">
<!-- #endif -->
<view v-for="(job, index) in dataSource" :key="job.id" :style="{ '--i': 2 }">
<view class="cards" @click="nextDetail(job)">
<view class="card-company">
@@ -33,7 +36,11 @@
</view>
</view>
</view>
<!-- #ifdef H5 -->
</transition-group>
<!-- #endif -->
</view>
</template>
<script setup>

View File

@@ -138,7 +138,7 @@ function nextDetail(job) {
if (job.isPublish) {
return $api.msg('已过期');
}
navTo(`/packageA/pages/post/post?jobId=${btoa(job.jobId)}&dataType=${job.dataType}`);
navTo(`/packageA/pages/post/post?jobId=${encodeURIComponent(job.jobId)}&dataType=${job.dataType}`);
}
</script>

View File

@@ -139,7 +139,7 @@ function nextDetail(job) {
return $api.msg('已过期');
}
// 根据数据类型跳转到不同的详情页
navTo(`/packageA/pages/post/post?jobId=${btoa(job.jobId)}&dataType=${job.dataType}`);
navTo(`/packageA/pages/post/post?jobId=${encodeURIComponent(job.jobId)}&dataType=${job.dataType}`);
}
</script>

View File

@@ -138,7 +138,7 @@ function nextDetail(job) {
if (job.isPublish) {
return $api.msg('已过期');
}
navTo(`/packageA/pages/post/post?jobId=${btoa(job.jobId)}&dataType=${job.dataType}`);
navTo(`/packageA/pages/post/post?jobId=${encodeURIComponent(job.jobId)}&dataType=${job.dataType}`);
}
</script>

View File

@@ -1,5 +1,8 @@
<template>
<view>
<!-- #ifdef H5 -->
<transition-group name="blur-fade-stagger" tag="view">
<!-- #endif -->
<view v-for="job in dataSource" :key="job.id || job.jobId" :style="{ '--i': 2 }">
<view v-if="!job.isTitle" class="cards" @click="nextDetail(job)">
<view class="card-company">
@@ -40,7 +43,10 @@
{{ job.title }}
</view>
</view>
<!-- #ifdef H5 -->
</transition-group>
<!-- #endif -->
</view>
</template>
<script setup>
@@ -128,7 +134,7 @@ function nextDetail(job) {
const recordData = recommedIndexDb.JobParameter(job);
recommedIndexDb.addRecord(recordData);
}
navTo(`/packageA/pages/post/post?jobId=${btoa(job.jobId)}&dataType=1`);
navTo(`/packageA/pages/post/post?jobId=${encodeURIComponent(job.jobId)}&dataType=1`);
}
</script>

View File

@@ -1,5 +1,8 @@
<template>
<view>
<!-- #ifdef H5 -->
<transition-group name="blur-fade-stagger" tag="view">
<!-- #endif -->
<view v-for="job in dataSource" :key="job.id" :style="{ '--i': 2 }">
<view v-if="!job.isTitle" class="cards" @click="nextDetail(job)">
<view class="card-company">
@@ -40,7 +43,10 @@
{{ job.title }}
</view>
</view>
<!-- #ifdef H5 -->
</transition-group>
<!-- #endif -->
</view>
</template>
<script setup>
@@ -101,7 +107,7 @@ function nextDetail(job) {
const recordData = recommedIndexDb.JobParameter(job);
recommedIndexDb.addRecord(recordData);
}
navTo(`/packageA/pages/post/post?jobId=${btoa(job.id)}&dataType=2`);
navTo(`/packageA/pages/post/post?jobId=${encodeURIComponent(job.id)}&dataType=2`);
}
function parseDateTime(datetimeStr) {
if (!datetimeStr) return { time: '', date: '' };

View File

@@ -129,6 +129,7 @@ const zphId = ref('');
const pageOptions = ref({});
onLoad((options) => {
console.log(options,'++')
zphId.value = options.jobFairId;
pageOptions.value = options;
getJobFairInfo(options.jobFairId, options.jobFairName);

View File

@@ -203,6 +203,7 @@ const explainUrlRef = ref('');
const dataType = ref(1); // 1: 原数据, 2: 第三方数据
onLoad((option) => {
console.log(option,'+++++')
if (option.jobId) {
dataType.value = option.dataType ? parseInt(option.dataType) : 1;
initLoad(option);
@@ -210,15 +211,17 @@ onLoad((option) => {
});
onShow(() => {
// #ifdef H5
const option = parseQueryParams(); // 兼容微信内置浏览器
if (option.jobId) {
dataType.value = option.dataType ? parseInt(option.dataType) : 1;
initLoad(option);
}
// #endif
});
function initLoad(option) {
const jobId = atob(option.jobId);
const jobId = decodeURIComponent(option.jobId);
if (jobId !== jobIdRef.value) {
jobIdRef.value = jobId;
getDetail(jobId);

View File

@@ -55,7 +55,7 @@ function nextDetail() {
recommedIndexDb.addRecord(recordData);
}
console.log(job.jobId);
navTo(`/packageA/pages/post/post?jobId=${btoa(job.jobId)}`);
navTo(`/packageA/pages/post/post?jobId=${encodeURIComponent(job.jobId)}`);
}
function getNextVideoSrc(num) {

View File

@@ -117,7 +117,7 @@ import useLocationStore from '@/stores/useLocationStore';
import { storeToRefs } from 'pinia';
import config from '@/config';
const { longitudeVal, latitudeVal } = storeToRefs(useLocationStore());
const { $api, navTo, cloneDeep, debounce } = inject('globalFunction');
const { $api, navTo, } = inject('globalFunction');
const weekList = ref([]);
const fairList = ref([]);
const currentDay = ref({});
@@ -149,9 +149,13 @@ onLoad(() => {
});
const handleItemClick = (item) => {
try {
lightAppJssdk.navigation.hide({
url: config.virtualJobFair,
});
} catch (error) {
$api.msg('功能确定中');
}
};
function toSelectDate() {

View File

@@ -30,11 +30,9 @@ export default {
import * as PIXI from "pixi.js";
// PIXI 变量
let app = null;
let tagsContainer = null;
let activeTagInstances = [];
// 配置数据
const mockTags = [
{ name: "医生", bgColor: 0x0069fe, fontColor: 0xffffff, size: 17, opacity: 1.0, angle: 0, radius: 0 },
@@ -149,12 +147,13 @@ const clamp = (num, min, max) => Math.min(Math.max(num, min), max);
export default {
data() {
return {
app:null
}
},
beforeDestroy() {
if (app) {
app.destroy(true, { children: true, texture: true, baseTexture: true });
app = null;
if (this.app) {
this.app.destroy(true, { children: true, texture: true, baseTexture: true });
this.app = null;
}
window.removeEventListener("resize", this.handleResize());
},
@@ -168,9 +167,9 @@ export default {
const height = container.clientHeight || 300;
console.log(width,height);
if (app) return;
if (this.app) return;
app = new PIXI.Application({
this.app = new PIXI.Application({
width: width,
height: height,
backgroundAlpha: 0,
@@ -179,12 +178,12 @@ export default {
resolution: window?.devicePixelRatio ?? 1,
autoDensity: true,
});
app.view.style.touchAction = "auto";
this.app.view.style.touchAction = "auto";
container.appendChild(app.view);
container.appendChild(this.app.view);
tagsContainer = new PIXI.Container();
app.stage.addChild(tagsContainer);
this.app.stage.addChild(tagsContainer);
this.renderScene(width, height);
window.addEventListener("resize", this.handleResize());
@@ -238,8 +237,8 @@ export default {
});
// 动画循环
app.ticker.add(() => {
const screenH = app.screen.height;
this.app.ticker.add(() => {
const screenH = this.app.screen.height;
activeTagInstances.forEach((tag) => {
const meta = tag.userData;
@@ -348,11 +347,11 @@ export default {
handleResize () {
const container = document.querySelector('#pixi-box');
if (!app || !container) return;
if (!this.app || !container) return;
const w = container.clientWidth || 300;
const h = container.clientHeight || 300;
app.renderer.resize(w, h);
this.app.renderer.resize(w, h);
activeTagInstances.forEach((tag) => {
const meta = tag.userData;

View File

@@ -292,7 +292,7 @@ function nextDetail(job) {
const recordData = recommedIndexDb.JobParameter(job);
recommedIndexDb.addRecord(recordData);
}
navTo(`/packageA/pages/post/post?jobId=${btoa(job.jobId)}`);
navTo(`/packageA/pages/post/post?jobId=${encodeURIComponent(job.jobId)}`);
}
function openFilter() {

View File

@@ -498,7 +498,7 @@ function nextDetail(job) {
const recordData = recommedIndexDb.JobParameter(job);
recommedIndexDb.addRecord(recordData);
}
navTo(`/packageA/pages/post/post?jobId=${btoa(job.jobId)}`);
navTo(`/packageA/pages/post/post?jobId=${encodeURIComponent(job.jobId)}`);
}
function openFilter() {
@@ -608,8 +608,9 @@ function getJobRecommend(type = 'add') {
list.value.push(...reslist);
})
.catch((err) => {
const reslist = dataToImg(data);
list.value.push(...reslist);
// const reslist = dataToImg(data);
// list.value.push(...reslist);
console.log(err,'+++')
});
} else {
list.value = dataToImg(data);
@@ -1107,7 +1108,7 @@ defineExpose({ loadData });
bottom:50rpx;
width:264rpx;
height:298rpx;
z-index:6
z-index:7
}
}
.no-radius

View File

@@ -166,7 +166,7 @@ function nextDetail(job) {
const recordData = recommedIndexDb.JobParameter(job);
recommedIndexDb.addRecord(recordData);
}
navTo(`/packageA/pages/post/post?jobId=${btoa(job.jobId)}`);
navTo(`/packageA/pages/post/post?jobId=${encodeURIComponent(job.jobId)}`);
}
function nextVideo(job) {
@@ -208,7 +208,8 @@ defineExpose({ loadData });
}
.nav-filter
padding: 16rpx 28rpx 30rpx 28rpx
padding: 16rpx 28rpx 30rpx 28rpx;
padding-top:calc(var(--window-top) + var(--status-bar-height) + 20rpx);
.filter-top
display: flex
justify-content: space-between;

View File

@@ -160,7 +160,7 @@ onLoad(() => {
});
function navToPost(jobId) {
navTo(`/packageA/pages/post/post?jobId=${btoa(jobId)}`);
navTo(`/packageA/pages/post/post?jobId=${encodeURIComponent(jobId)}`);
}
async function loadData() {

View File

@@ -231,7 +231,7 @@ function nextDetail(job) {
const recordData = recommedIndexDb.JobParameter(job);
recommedIndexDb.addRecord(recordData);
}
navTo(`/packageA/pages/post/post?jobId=${btoa(job.jobId)}`);
navTo(`/packageA/pages/post/post?jobId=${encodeURIComponent(job.jobId)}`);
}
function nextVideo(job) {

1108
static/js/pixi.min.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
// BaseDBStore.js
import IndexedDBHelper from '@/common/IndexedDBHelper.js'
// import UniStorageHelper from '../common/UniStorageHelper'
import UniStorageHelper from '../common/UniStorageHelper'
import useChatGroupDBStore from '@/stores/userChatGroupStore'
import config from '@/config'
@@ -43,6 +43,10 @@ class BaseStore {
this.db = new IndexedDBHelper(this.dbName, config.DBversion);
// // #endif
// #ifdef APP-PLUS
this.db = new UniStorageHelper(this.dbName, );
// #endif
return this.db.openDB([{
name: 'record',
keyPath: "id",