flat:修改

This commit is contained in:
Apcallover
2025-12-16 09:22:57 +08:00
parent e19673b99e
commit d9f0356491
10 changed files with 344 additions and 373 deletions

View File

@@ -27,7 +27,7 @@
</view> </view>
<!-- 主体内容区域 --> <!-- 主体内容区域 -->
<view class="container-main"> <view class="container-main" :style="{ backgroundColor: mainbackGroundColor }">
<scroll-view v-if="useScrollView" scroll-y class="main-scroll" @scrolltolower="handleScrollToLower"> <scroll-view v-if="useScrollView" scroll-y class="main-scroll" @scrolltolower="handleScrollToLower">
<slot></slot> <slot></slot>
</scroll-view> </scroll-view>
@@ -70,6 +70,10 @@ defineProps({
type: String, type: String,
default: '#ffffff', default: '#ffffff',
}, },
mainbackGroundColor: {
type: String,
default: '',
},
useScrollView: { useScrollView: {
type: Boolean, type: Boolean,
default: true, default: true,

View File

@@ -1,6 +1,6 @@
export default { export default {
// baseUrl: 'https://fw.rc.qingdao.gov.cn/rgpp-api/api', // 内网 baseUrl: 'https://fw.rc.qingdao.gov.cn/rgpp-api/api', // 内网
baseUrl: 'https://qd.zhaopinzao8dian.com/api', // 测试 // baseUrl: 'https://qd.zhaopinzao8dian.com/api', // 测试
// baseUrl: 'http://192.168.3.29:8081', // baseUrl: 'http://192.168.3.29:8081',
// baseUrl: 'http://10.213.6.207:19010/api', // baseUrl: 'http://10.213.6.207:19010/api',
// 语音转文字 // 语音转文字

View File

@@ -22,11 +22,11 @@
<script> <script>
eruda.init(); eruda.init();
</script> --> </script> -->
<!-- <script src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js"></script> <script src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js"></script>
<script> <script>
// VConsole 默认会挂载到 `window.VConsole` 上 // VConsole 默认会挂载到 `window.VConsole` 上
var vConsole = new window.VConsole(); var vConsole = new window.VConsole();
</script> --> </script>
<!-- 爱山东jssdk 本sdk存在性能问题 --> <!-- 爱山东jssdk 本sdk存在性能问题 -->
<script type="text/javascript" src="https://isdapp.shandong.gov.cn/jmopen/jssdk/index.js"></script> <script type="text/javascript" src="https://isdapp.shandong.gov.cn/jmopen/jssdk/index.js"></script>
<!-- 只在内网有效 --> <!-- 只在内网有效 -->

View File

@@ -1,5 +1,11 @@
<template> <template>
<AppLayout title="投递记录" :use-scroll-view="true" :show-bg-image="false" @onScrollBottom="getJobList()"> <AppLayout
title="投递记录"
:use-scroll-view="true"
mainback-ground-color="#f4f4f4"
:show-bg-image="false"
@onScrollBottom="getJobList()"
>
<template #headerleft v-if="isMiniProgram"> <template #headerleft v-if="isMiniProgram">
<view class="btnback"> <view class="btnback">
<image src="@/static/icon/back.png" @click="navBack"></image> <image src="@/static/icon/back.png" @click="navBack"></image>
@@ -45,8 +51,6 @@ onLoad(() => {
getJobList(); getJobList();
}); });
function getJobList(type = 'add') { function getJobList(type = 'add') {
if (type === 'refresh') { if (type === 'refresh') {
pageState.page = 1; pageState.page = 1;

View File

@@ -23,6 +23,7 @@ import useLocationStore from '@/stores/useLocationStore';
import { usePagination } from '@/hook/usePagination'; import { usePagination } from '@/hook/usePagination';
import { jobMoreMap } from '@/utils/markdownParser'; import { jobMoreMap } from '@/utils/markdownParser';
const { longitudeVal, latitudeVal } = storeToRefs(useLocationStore()); const { longitudeVal, latitudeVal } = storeToRefs(useLocationStore());
const { isMiniProgram } = storeToRefs(useUserStore());
const loadmoreRef = ref(null); const loadmoreRef = ref(null);
// 响应式搜索条件(可以被修改) // 响应式搜索条件(可以被修改)
@@ -64,7 +65,6 @@ function removeNullProperties(obj) {
} }
return obj; return obj;
} }
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>

View File

@@ -71,7 +71,7 @@
</template> </template>
<script setup> <script setup>
import { ref, inject, nextTick, computed,watch } from 'vue'; import { ref, inject, nextTick, computed, watch } from 'vue';
const { $api, navTo, insertSortData } = inject('globalFunction'); const { $api, navTo, insertSortData } = inject('globalFunction');
import { onLoad, onShow, onHide } from '@dcloudio/uni-app'; import { onLoad, onShow, onHide } from '@dcloudio/uni-app';
import Tabbar from '@/components/tabbar/midell-box.vue'; import Tabbar from '@/components/tabbar/midell-box.vue';
@@ -88,19 +88,18 @@ import config from '@/config';
const searchText = ref(''); const searchText = ref('');
const paging = ref(null); const paging = ref(null);
import useScreenStore from '@/stores/useScreenStore';
const screenStore = useScreenStore();
import useScreenStore from '@/stores/useScreenStore' const showTabbar = ref(false);
const screenStore = useScreenStore()
const showTabbar = ref(false)
watch( watch(
() => screenStore.isWideScreen, () => screenStore.isWideScreen,
(newVal) => { (newVal) => {
showTabbar.value = newVal showTabbar.value = newVal;
}, },
{ immediate: true } { immediate: true }
) );
// 实时过滤 // 实时过滤
const filteredList = computed(() => { const filteredList = computed(() => {
@@ -125,7 +124,7 @@ onHide(() => {
paging.value?.handleTouchCancel(); paging.value?.handleTouchCancel();
if (isDrawerOpen.value) { if (isDrawerOpen.value) {
isDrawerOpen.value = false; isDrawerOpen.value = false;
if(!screenStore.isWideScreen)uni.showTabBar(); if (!screenStore.isWideScreen) uni.showTabBar();
} }
}); });
@@ -134,7 +133,7 @@ const toggleDrawer = () => {
if (isDrawerOpen.value) { if (isDrawerOpen.value) {
uni.hideTabBar(); uni.hideTabBar();
} else { } else {
if(!screenStore.isWideScreen)uni.showTabBar(); if (!screenStore.isWideScreen) uni.showTabBar();
} }
}; };

View File

@@ -267,6 +267,8 @@ import AudioWave from './AudioWave.vue';
import WaveDisplay from './WaveDisplay.vue'; import WaveDisplay from './WaveDisplay.vue';
import FileIcon from './fileIcon.vue'; import FileIcon from './fileIcon.vue';
import FileText from './fileText.vue'; import FileText from './fileText.vue';
import useScreenStore from '@/stores/useScreenStore'
const screenStore = useScreenStore();
// 系统功能hook和阿里云hook // 系统功能hook和阿里云hook
import { useAudioRecorder } from '@/hook/useRealtimeRecorder2.js'; import { useAudioRecorder } from '@/hook/useRealtimeRecorder2.js';
// import { useAudioRecorder } from '@/hook/useSystemSpeechReader.js'; // import { useAudioRecorder } from '@/hook/useSystemSpeechReader.js';
@@ -446,7 +448,7 @@ const scrollToBottom = throttle(function () {
}, 500); }, 500);
function getGuess() { function getGuess() {
$api.chatRequest('/app/chat/guest', { sessionId: chatSessionID.value }, 'POST').then((res) => { $api.createRequest('/app/chat/guest', { sessionId: chatSessionID.value }, 'POST').then((res) => {
guessList.value = res.data; guessList.value = res.data;
showGuess.value = true; showGuess.value = true;
nextTick(() => { nextTick(() => {
@@ -619,14 +621,14 @@ function confirmFeeBack(value) {
useChatGroupDBStore() useChatGroupDBStore()
.badFeedback(feebackData.value, value) .badFeedback(feebackData.value, value)
.then(() => { .then(() => {
uni.showTabBar() if (!screenStore.isWideScreen) uni.showTabBar()
feeback.value?.close(); feeback.value?.close();
feeBackTips.value?.open(); feeBackTips.value?.open();
}); });
} }
function colseFeeBack() { function colseFeeBack() {
uni.showTabBar() if (!screenStore.isWideScreen) uni.showTabBar()
} }
function readMarkdown(value, index) { function readMarkdown(value, index) {
@@ -898,6 +900,7 @@ image-margin-top = 40rpx
position: relative position: relative
background: #F5F5F5; background: #F5F5F5;
border-radius: 60rpx 60rpx 60rpx 60rpx; border-radius: 60rpx 60rpx 60rpx 60rpx;
font-size: 28rpx;
} }
.input_vio .input_vio
flex: 1; flex: 1;

View File

@@ -8,7 +8,7 @@
</template> </template>
<script setup> <script setup>
import { onMounted, onUnmounted, ref, nextTick ,watch} from "vue"; import { onMounted, onUnmounted, ref, nextTick, watch } from 'vue';
const props = defineProps({ const props = defineProps({
tags: { tags: {
@@ -20,7 +20,7 @@ const props = defineProps({
default: false, default: false,
}, },
}); });
const emit = defineEmits(["tag-click"]); const emit = defineEmits(['tag-click']);
// DOM Ref // DOM Ref
const pixiContainerRef = ref(null); const pixiContainerRef = ref(null);
@@ -31,8 +31,7 @@ let tagsContainer = null;
let activeTagInstances = []; let activeTagInstances = [];
// 配置数据 // 配置数据
const tagsConfig =ref( const tagsConfig = ref([
[
{ bgColor: 0x0069fe, fontColor: 0xffffff, size: 16, opacity: 1.0, angle: 0, radius: 0 }, { bgColor: 0x0069fe, fontColor: 0xffffff, size: 16, opacity: 1.0, angle: 0, radius: 0 },
{ {
bgColor: 0x87e2ec, bgColor: 0x87e2ec,
@@ -119,33 +118,30 @@ const tagsConfig =ref(
radius: 120, radius: 120,
tailRotation: Math.PI / 3, tailRotation: Math.PI / 3,
}, },
] ]);
)
watch( watch(
()=>props.tags, () => props.tags,
(val)=>{ (val) => {
if(val&&val.length){ if (val && val.length) {
tagsConfig.value.map((tag,index)=>{ tagsConfig.value.map((tag, index) => {
console.log(val[index]) // console.log(val[index])
tag.name = val[index]?.job_name tag.name = val[index]?.job_name;
}) });
setTimeout(() => { setTimeout(() => {
initPixi() initPixi();
}, 100); }, 100);
} }
}, },
{deep:true} { deep: true }
) );
onMounted(async () => { onMounted(async () => {
window.addEventListener("resize", handleResize); window.addEventListener('resize', handleResize);
}); });
onUnmounted(() => { onUnmounted(() => {
window.removeEventListener("resize", handleResize); window.removeEventListener('resize', handleResize);
if (app) { if (app) {
app.destroy(true, { children: true, texture: true, baseTexture: true }); app.destroy(true, { children: true, texture: true, baseTexture: true });
app = null; app = null;
@@ -154,7 +150,7 @@ onUnmounted(() => {
const getContainerDOM = () => { const getContainerDOM = () => {
const refVal = pixiContainerRef.value; const refVal = pixiContainerRef.value;
if (!refVal) return document.getElementById("pixi-box"); if (!refVal) return document.getElementById('pixi-box');
if (refVal.$el) return refVal.$el; if (refVal.$el) return refVal.$el;
return refVal; return refVal;
}; };
@@ -179,7 +175,7 @@ const initPixi = () => {
resolution: window.devicePixelRatio || 1, resolution: window.devicePixelRatio || 1,
autoDensity: true, autoDensity: true,
}); });
app.view.style.touchAction = "auto"; app.view.style.touchAction = 'auto';
container.appendChild(app.view); container.appendChild(app.view);
@@ -228,7 +224,13 @@ const renderScene = (sw, sh) => {
}; };
if (data.radius > 0) { if (data.radius > 0) {
const tail = createCometTail(data.tailColor || data.bgColor, data.tailRotation, tag.width, tag.height, ratio); const tail = createCometTail(
data.tailColor || data.bgColor,
data.tailRotation,
tag.width,
tag.height,
ratio
);
tag.addChildAt(tail, 0); tag.addChildAt(tail, 0);
tag.updateTail = () => tail.updateAnim(); tag.updateTail = () => tail.updateAnim();
} }
@@ -261,13 +263,13 @@ const renderScene = (sw, sh) => {
const createTag = (tagData, index, ratio) => { const createTag = (tagData, index, ratio) => {
if (ratio > 1) ratio = ratio * 0.9; if (ratio > 1) ratio = ratio * 0.9;
const tagGroup = new PIXI.Container(); const tagGroup = new PIXI.Container();
tagGroup.eventMode = "static"; tagGroup.eventMode = 'static';
tagGroup.cursor = "pointer"; tagGroup.cursor = 'pointer';
tagGroup.on("pointertap", () => emit("tag-click", tagData)); tagGroup.on('pointertap', () => emit('tag-click', tagData));
const text = new PIXI.Text(tagData.name, { const text = new PIXI.Text(tagData.name, {
fontFamily: ["PingFang SC", "Microsoft YaHei", "Arial"], fontFamily: ['PingFang SC', 'Microsoft YaHei', 'Arial'],
fontSize: tagData.size * ratio, fontSize: tagData.size * ratio,
fill: tagData.fontColor, fill: tagData.fontColor,
padding: 4 * ratio, padding: 4 * ratio,
@@ -293,8 +295,8 @@ const createTag = (tagData, index, ratio) => {
return tagGroup; return tagGroup;
}; };
const createCometTail = (bgColor, tailRotation, parentWidth,parentHeight, ratio) => { const createCometTail = (bgColor, tailRotation, parentWidth, parentHeight, ratio) => {
if (ratio > 1) ratio = ratio ; if (ratio > 1) ratio = ratio;
const tailGroup = new PIXI.Container(); const tailGroup = new PIXI.Container();
const graphics = new PIXI.Graphics(); const graphics = new PIXI.Graphics();
tailGroup.addChild(graphics); tailGroup.addChild(graphics);
@@ -350,34 +352,38 @@ const handleResize = () => {
if (!app || !container) return; if (!app || !container) return;
app.destroy(true, { children: true, texture: true, baseTexture: true }); app.destroy(true, { children: true, texture: true, baseTexture: true });
app = null; app = null;
initPixi() initPixi();
}; };
</script> </script>
<style scoped> <style scoped>
.out{ .out {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.loading{ .loading {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.semicircle-loader { .semicircle-loader {
width: 150rpx; width: 150rpx;
height: 150rpx; height: 150rpx;
border: 12rpx solid #f3f3f3; border: 12rpx solid #f3f3f3;
border-top: 12rpx solid #3498db; border-top: 12rpx solid #3498db;
border-radius: 50%; border-radius: 50%;
animation: spin 1.2s linear infinite; animation: spin 1.2s linear infinite;
} }
@keyframes spin { @keyframes spin {
0% { transform: rotate(0deg); } 0% {
100% { transform: rotate(360deg); } transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
} }
.container { .container {
width: 100%; width: 100%;

View File

@@ -280,8 +280,8 @@ const isSticky = ref(false);
const showScrollBottom = ref(false); const showScrollBottom = ref(false);
const scrollTop = ref(0); const scrollTop = ref(0);
const matchTags = ref([]) const matchTags = ref([]);
const matchLoading = ref(false) const matchLoading = ref(false);
const emits = defineEmits(['onShowTabbar']); const emits = defineEmits(['onShowTabbar']);
@@ -314,69 +314,24 @@ const rangeOptions = ref([
]); ]);
const isLoaded = ref(false); const isLoaded = ref(false);
const occupations = [
'律师',
'工程师',
'医生',
'教师',
'设计师',
'程序员',
'会计师',
'建筑师',
'护士',
'销售',
'经理',
'顾问',
'分析师',
'研究员',
'编辑',
'记者',
'摄影师',
'厨师',
'司机',
'保安',
'客服',
'行政',
'人事',
'市场',
'运营',
'产品',
'测试',
'运维',
'前端',
'后端',
'全栈',
'数据',
'策划',
'导演',
'演员',
'歌手',
'作家',
'画家',
'翻译',
'导游',
];
const colors = ['#0069FE', '#FF9400', '#FF6969', '#21EA85', '#87E2EC']; const colors = ['#0069FE', '#FF9400', '#FF6969', '#21EA85', '#87E2EC'];
onMounted(() => { onMounted(() => {
let firstEntry = uni.getStorageSync('firstEntry') === false ? false : true; // 默认未读 let firstEntry = uni.getStorageSync('firstEntry') === false ? false : true; // 默认未读
maskFirstEntry.value = firstEntry; maskFirstEntry.value = firstEntry;
getMatchTags() getMatchTags();
}); });
async function getMatchTags(){ async function getMatchTags() {
try{ try {
matchLoading.value=true matchLoading.value = true;
const {data} = await $api.createRequest('/app/user/getJobAdviceByResume') const { data } = await $api.createRequest('/app/user/getJobAdviceByResume');
matchTags.value = data matchTags.value = data;
matchLoading.value=false matchLoading.value = false;
}catch(err){ } catch (err) {
console.err('简历匹配职位获取失败') console.err('简历匹配职位获取失败');
}finally{ } finally {
} }
} }
const checkStickyStatus = (e) => { const checkStickyStatus = (e) => {
@@ -405,7 +360,7 @@ function closeVideoTip() {
const handleTagClick = (tagInfo) => { const handleTagClick = (tagInfo) => {
console.log('点击的标签信息:', tagInfo); console.log('点击的标签信息:', tagInfo);
navTo(`/pages/search/search?keyWord=${encodeURIComponent(tagInfo.name)}`) navTo(`/pages/search/search?keyWord=${encodeURIComponent(tagInfo.name)}`);
}; };
const handleItemClick = (item) => { const handleItemClick = (item) => {

View File

@@ -216,7 +216,7 @@ const useChatGroupDBStore = defineStore("messageGroup", () => {
userBadFeedback: content, userBadFeedback: content,
} }
$api.chatRequest('/stepped', parmas, 'POST').then((res) => { $api.createRequest('/stepped', parmas, 'POST').then((res) => {
baseDB.db.update(massageName.value, dbData) // 更新本地数据库 baseDB.db.update(massageName.value, dbData) // 更新本地数据库
messages.value.forEach((item) => { messages.value.forEach((item) => {
if (item.id === dbData.id) { if (item.id === dbData.id) {
@@ -230,7 +230,7 @@ const useChatGroupDBStore = defineStore("messageGroup", () => {
// 云端数据 // 云端数据
function getHistory() { function getHistory() {
$api.chatRequest('/app/chat/getHistory').then((res) => { $api.createRequest('/app/chat/getHistory').then((res) => {
if (!res.data.list.length) return if (!res.data.list.length) return
let tabel = parseHistory(res.data.list) let tabel = parseHistory(res.data.list)
if (tabel && tabel.length) { if (tabel && tabel.length) {
@@ -250,14 +250,14 @@ const useChatGroupDBStore = defineStore("messageGroup", () => {
const params = { const params = {
sessionId: chatSessionID.value sessionId: chatSessionID.value
} }
$api.chatRequest('/app/chat/detail', params, 'GET', loading).then((res) => { $api.createRequest('/app/chat/detail', params, 'GET', loading).then((res) => {
let list = parseHistoryDetail(res.data.list, chatSessionID.value) let list = parseHistoryDetail(res.data.list, chatSessionID.value)
if (list.length) { if (list.length) {
baseDB.db.add(massageName.value, list).then((ids) => { baseDB.db.add(massageName.value, list).then((ids) => {
messages.value = listAddId(list, ids) messages.value = listAddId(list, ids)
}); });
} }
console.log('解析后:', list) // console.log('解析后:', list)
}).catch(() => { }).catch(() => {
msg('请求出现异常,请联系工作人员') msg('请求出现异常,请联系工作人员')
}) })