页面适配
This commit is contained in:
@@ -1,39 +1,46 @@
|
||||
<template>
|
||||
<view>
|
||||
<!-- #ifdef H5 -->
|
||||
<transition-group name="blur-fade-stagger" tag="view">
|
||||
<view v-for="(job, index) in dataSource" :key="job.id" :style="{ '--i': 2 }">
|
||||
<view class="cards" @click="nextDetail(job)">
|
||||
<view class="card-company">
|
||||
<text class="company line_1">{{ job.gsmc }}</text>
|
||||
</view>
|
||||
<view class="card-bottom">
|
||||
<view class="fl_box fs_14">
|
||||
<!-- <dict-tree-Label class="mar_ri10" dictType="industry" :value="job.industry"></dict-tree-Label>
|
||||
<!-- #endif -->
|
||||
<view v-for="(job, index) in dataSource" :key="job.id" :style="{ '--i': 2 }">
|
||||
<view class="cards" @click="nextDetail(job)">
|
||||
<view class="card-company">
|
||||
<text class="company line_1">{{ job.gsmc }}</text>
|
||||
</view>
|
||||
<view class="card-bottom">
|
||||
<view class="fl_box fs_14">
|
||||
<!-- <dict-tree-Label class="mar_ri10" dictType="industry" :value="job.industry"></dict-tree-Label>
|
||||
<dict-Label dictType="scale" :value="job.scale"></dict-Label> -->
|
||||
<view>{{ job.gsxy }}</view>
|
||||
</view>
|
||||
<view class="ris">
|
||||
<text class="fs_14">
|
||||
在招职位·
|
||||
<text class="color_256BFA">{{ job.zzgwsl || '-' }}</text>
|
||||
个
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="card-tags">
|
||||
<view class="tag" v-if="job.nature">
|
||||
<dict-Label dictType="nature" :value="job.nature"></dict-Label>
|
||||
<dict-Label dictType="nature" :value="job.nature"></dict-Label>
|
||||
</view>
|
||||
<view class="tag">
|
||||
{{ vacanciesTo(job.vacancies) }}
|
||||
</view>
|
||||
<view class="tag" v-if="job.qyxz">
|
||||
{{ job.qyxz }}
|
||||
</view>
|
||||
</view>
|
||||
<view>{{ job.gsxy }}</view>
|
||||
</view>
|
||||
<view class="ris">
|
||||
<text class="fs_14">
|
||||
在招职位·
|
||||
<text class="color_256BFA">{{ job.zzgwsl || '-' }}</text>
|
||||
个
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="card-tags">
|
||||
<view class="tag" v-if="job.nature">
|
||||
<dict-Label dictType="nature" :value="job.nature"></dict-Label>
|
||||
<dict-Label dictType="nature" :value="job.nature"></dict-Label>
|
||||
</view>
|
||||
<view class="tag">
|
||||
{{ vacanciesTo(job.vacancies) }}
|
||||
</view>
|
||||
<view class="tag" v-if="job.qyxz">
|
||||
{{ job.qyxz }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- #ifdef H5 -->
|
||||
</transition-group>
|
||||
<!-- #endif -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
@@ -44,70 +51,70 @@ const recommedIndexDb = useRecommedIndexedDBStore();
|
||||
|
||||
const dataSource = ref([]);
|
||||
const props = defineProps({
|
||||
list: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
longitude: {
|
||||
type: Number,
|
||||
default: 120.382665,
|
||||
},
|
||||
latitude: {
|
||||
type: Number,
|
||||
default: 36.066938,
|
||||
},
|
||||
seeDate: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
zphId: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
list: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
longitude: {
|
||||
type: Number,
|
||||
default: 120.382665,
|
||||
},
|
||||
latitude: {
|
||||
type: Number,
|
||||
default: 36.066938,
|
||||
},
|
||||
seeDate: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
zphId: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
});
|
||||
const processedIds = new Set();
|
||||
watch(
|
||||
() => props.list,
|
||||
(newList) => {
|
||||
if (!Array.isArray(newList)) return;
|
||||
() => props.list,
|
||||
(newList) => {
|
||||
if (!Array.isArray(newList)) return;
|
||||
|
||||
let shouldReset = false;
|
||||
let shouldReset = false;
|
||||
|
||||
if (dataSource.value.length > newList.length) {
|
||||
shouldReset = true;
|
||||
} else if (dataSource.value.length > 0 && newList.length > 0) {
|
||||
// 注意:这里沿用你代码中使用的 item.id 作为唯一标识
|
||||
const oldId = dataSource.value[0].id;
|
||||
const newId = newList[0].id;
|
||||
if (oldId !== newId) {
|
||||
shouldReset = true;
|
||||
}
|
||||
}
|
||||
if (dataSource.value.length > newList.length) {
|
||||
shouldReset = true;
|
||||
} else if (dataSource.value.length > 0 && newList.length > 0) {
|
||||
// 注意:这里沿用你代码中使用的 item.id 作为唯一标识
|
||||
const oldId = dataSource.value[0].id;
|
||||
const newId = newList[0].id;
|
||||
if (oldId !== newId) {
|
||||
shouldReset = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (shouldReset) {
|
||||
dataSource.value = [];
|
||||
processedIds.clear();
|
||||
}
|
||||
if (shouldReset) {
|
||||
dataSource.value = [];
|
||||
processedIds.clear();
|
||||
}
|
||||
|
||||
const newItems = newList.filter((item) => !processedIds.has(item.id));
|
||||
const newItems = newList.filter((item) => !processedIds.has(item.id));
|
||||
|
||||
if (newItems.length === 0) return;
|
||||
if (newItems.length === 0) return;
|
||||
|
||||
newItems.forEach((item) => processedIds.add(item.id));
|
||||
const delay = 50;
|
||||
newItems.forEach((item, index) => {
|
||||
setTimeout(() => {
|
||||
dataSource.value.push(item);
|
||||
}, index * delay);
|
||||
});
|
||||
},
|
||||
{ immediate: true, deep: true }
|
||||
newItems.forEach((item) => processedIds.add(item.id));
|
||||
const delay = 50;
|
||||
newItems.forEach((item, index) => {
|
||||
setTimeout(() => {
|
||||
dataSource.value.push(item);
|
||||
}, index * delay);
|
||||
});
|
||||
},
|
||||
{ immediate: true, deep: true }
|
||||
);
|
||||
|
||||
function nextDetail(company) {
|
||||
navTo(
|
||||
`/packageA/pages/UnitDetails/UnitDetails?companyId=${company.gsID}&companyName=${company.gsmc}&zphId=${props.zphId}&dataType=2`
|
||||
);
|
||||
navTo(
|
||||
`/packageA/pages/UnitDetails/UnitDetails?companyId=${company.gsID}&companyName=${company.gsmc}&zphId=${props.zphId}&dataType=2`
|
||||
);
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user