diff --git a/App.vue b/App.vue index 99acae0..eb78bd7 100644 --- a/App.vue +++ b/App.vue @@ -2,10 +2,11 @@ import { reactive, inject, onMounted } from 'vue'; import { onLaunch, onShow, onHide } from '@dcloudio/uni-app'; import useUserStore from './stores/useUserStore'; +import usePageAnimation from './hook/usePageAnimation'; import useDictStore from './stores/useDictStore'; const { $api, navTo, appendScriptTagElement, aes_Decrypt, sm2_Decrypt } = inject('globalFunction'); import config from '@/config.js'; - +usePageAnimation(); const appword = 'aKd20dbGdFvmuwrt'; // 固定值 onLaunch((options) => { diff --git a/config.js b/config.js index 74e3c87..fb1fc56 100644 --- a/config.js +++ b/config.js @@ -1,6 +1,6 @@ export default { - // baseUrl: 'https://fw.rc.qingdao.gov.cn/rgpp-api/api', // 内网 - baseUrl: 'https://qd.zhaopinzao8dian.com/api', // 测试 + baseUrl: 'https://fw.rc.qingdao.gov.cn/rgpp-api/api', // 内网 + // baseUrl: 'https://qd.zhaopinzao8dian.com/api', // 测试 // baseUrl: 'http://192.168.3.29:8081', // baseUrl: 'http://10.213.6.207:19010/api', // 语音转文字 diff --git a/hook/page-animation.css b/hook/page-animation.css new file mode 100644 index 0000000..7e7fdc1 --- /dev/null +++ b/hook/page-animation.css @@ -0,0 +1,30 @@ +/* #ifdef H5 */ +uni-page { + opacity: 1; + will-change: opacity; +} + +/* --- 进场 (Enter) --- */ +uni-page.animation-enter-from { + opacity: 0; +} + +uni-page.animation-enter-active { + transition: opacity 0.2s ease-out; +} + +/* --- 离场 (Leave) --- */ +uni-page.animation-leave-active { + transition: opacity 0.15s ease-in; +} + +uni-page.animation-leave-to { + opacity: 0; +} + +/* --- 稳态 --- */ +uni-page.animation-show { + opacity: 1; +} + +/* #endif */ \ No newline at end of file diff --git a/hook/usePageAnimation.js b/hook/usePageAnimation.js new file mode 100644 index 0000000..bba7bbc --- /dev/null +++ b/hook/usePageAnimation.js @@ -0,0 +1,66 @@ +import { + onLaunch +} from '@dcloudio/uni-app' +import { + getCurrentInstance +} from 'vue' +import './page-animation.css' + +const DURATION = 130 + +export default function usePageAnimation() { + // #ifdef H5 + const show = () => { + const page = document.querySelector('uni-page') + if (!page) return + const cl = page.classList + + cl.add('animation-enter-from') + cl.remove('animation-leave-to', 'animation-leave-active') + + requestAnimationFrame(() => { + requestAnimationFrame(() => { + cl.remove('animation-enter-from') + cl.add('animation-enter-active', 'animation-show') + + setTimeout(() => { + cl.remove('animation-enter-active') + }, DURATION) + }) + }) + } + + const hide = (next) => { + const page = document.querySelector('uni-page') + if (!page) { + next() + return + } + const cl = page.classList + + cl.add('animation-leave-active') + + requestAnimationFrame(() => { + cl.remove('animation-show') + cl.add('animation-leave-to') + + setTimeout(() => { + cl.remove('animation-leave-active', 'animation-leave-to') + next() + }, DURATION - 50) + }) + } + + onLaunch(() => { + const instance = getCurrentInstance() + const router = instance?.proxy?.$router + if (router) { + show() + + router.beforeEach((to, from, next) => hide(next)) + + router.afterEach(() => show()) + } + }) + // #endif +} \ No newline at end of file diff --git a/index.html b/index.html index 2e04e64..3f577f2 100644 --- a/index.html +++ b/index.html @@ -18,9 +18,14 @@ - + + + diff --git a/packageA/pages/UnitDetails/UnitDetails.vue b/packageA/pages/UnitDetails/UnitDetails.vue index 7af3248..1966189 100644 --- a/packageA/pages/UnitDetails/UnitDetails.vue +++ b/packageA/pages/UnitDetails/UnitDetails.vue @@ -93,7 +93,7 @@ const pageOptions = ref({}); const dataType = ref(1); // 1: 原数据, 2: 第三方数据 onLoad((options) => { - console.log(options); + // console.log(options); dataType.value = options.dataType ? parseInt(options.dataType) : 1; pageOptions.value = options; @@ -145,13 +145,13 @@ function getCompanyInfo(...args) { if (dataType.value === 2) { // 第三方数据接口 const [companyId, zphId] = args; - $api.createRequest(`/app/internal/companyThirdPart/${companyId}/${zphId}`).then((resData) => { + $api.createRequest(`/app/internal/companyThirdPart/${companyId}/${zphId}`, {}, 'GET', true).then((resData) => { companyInfo.value = resData.data; }); } else { // 原数据接口 const [companyId] = args; - $api.createRequest(`/app/company/${companyId}`).then((resData) => { + $api.createRequest(`/app/company/${companyId}`, {}, 'GET', true).then((resData) => { companyInfo.value = resData.data; getJobsList(); }); @@ -184,12 +184,15 @@ function getThirdPartyJobsList(type = 'add') { pageSize: pageState.pageSize, }; - $api.createRequest(`/app/internal/jobThirdPart?gsID=${companyId}&gsmc=${companyName}&zphID=${zphId}`, params).then( - (resData) => { - const { rows, total } = resData; - handleJobsListResponse(type, rows, total, 'current'); - } - ); + $api.createRequest( + `/app/internal/jobThirdPart?gsID=${companyId}&gsmc=${companyName}&zphID=${zphId}`, + params, + 'GET', + true + ).then((resData) => { + const { rows, total } = resData; + handleJobsListResponse(type, rows, total, 'current'); + }); } function getOriginalJobsList(type = 'add') { @@ -206,7 +209,7 @@ function getOriginalJobsList(type = 'add') { pageSize: pageState.pageSize, }; - $api.createRequest(`/app/company/job/${companyInfo.value.companyId}`, params).then((resData) => { + $api.createRequest(`/app/company/job/${companyInfo.value.companyId}`, params, 'GET', true).then((resData) => { const { rows, total } = resData; handleJobsListResponse(type, rows, total, 'page'); }); diff --git a/packageA/pages/newJobPosition/newJobPosition.vue b/packageA/pages/newJobPosition/newJobPosition.vue index 4536ce0..c6c0b2c 100644 --- a/packageA/pages/newJobPosition/newJobPosition.vue +++ b/packageA/pages/newJobPosition/newJobPosition.vue @@ -24,12 +24,11 @@ - + @@ -140,6 +139,7 @@ function getList(type = 'add', loading = true) { height: 100% .list{ padding: 0 28rpx 28rpx 28rpx + height: calc(100% - 28rpx) } } } diff --git a/packageA/pages/reservation/reservation.vue b/packageA/pages/reservation/reservation.vue index 31c8dd2..d8302fd 100644 --- a/packageA/pages/reservation/reservation.vue +++ b/packageA/pages/reservation/reservation.vue @@ -13,7 +13,7 @@ - + diff --git a/pages/careerfair/careerfair copy.vue b/pages/careerfair/careerfair copy.vue index 4431345..69f3b55 100644 --- a/pages/careerfair/careerfair copy.vue +++ b/pages/careerfair/careerfair copy.vue @@ -37,7 +37,7 @@ - + 内容简介:{{ item.zphjj }} - + diff --git a/pages/careerfair/careerfair.vue b/pages/careerfair/careerfair.vue index c5023f1..59ce01f 100644 --- a/pages/careerfair/careerfair.vue +++ b/pages/careerfair/careerfair.vue @@ -44,7 +44,7 @@ - + 内容简介:{{ item.zphjj }} - + diff --git a/pages/chat/components/ai-paging.vue b/pages/chat/components/ai-paging.vue index 0dc6d79..3db1b13 100644 --- a/pages/chat/components/ai-paging.vue +++ b/pages/chat/components/ai-paging.vue @@ -268,10 +268,10 @@ import WaveDisplay from './WaveDisplay.vue'; import FileIcon from './fileIcon.vue'; import FileText from './fileText.vue'; // 系统功能hook和阿里云hook -// import { useAudioRecorder } from '@/hook/useRealtimeRecorder.js'; -import { useAudioRecorder } from '@/hook/useSystemSpeechReader.js'; -// import { useTTSPlayer } from '@/hook/useTTSPlayer.js'; -import { useTTSPlayer } from '@/hook/useSystemPlayer.js'; +import { useAudioRecorder } from '@/hook/useRealtimeRecorder.js'; +// import { useAudioRecorder } from '@/hook/useSystemSpeechReader.js'; +import { useTTSPlayer } from '@/hook/useTTSPlayer.js'; +// import { useTTSPlayer } from '@/hook/useSystemPlayer.js'; // 全局 const { $api, navTo, throttle } = inject('globalFunction'); const emit = defineEmits(['onConfirm']); @@ -632,7 +632,7 @@ function readMarkdown(value, index) { if (isPaused.value) { resume(); } else { - console.log(value, speechIndex.value, index, isPaused.value) + // console.log(value, speechIndex.value, index, isPaused.value) speak(value); } } diff --git a/pages/index/components/index-one.vue b/pages/index/components/index-one.vue index bd3ff74..bb5ac14 100644 --- a/pages/index/components/index-one.vue +++ b/pages/index/components/index-one.vue @@ -66,7 +66,7 @@ - + - + diff --git a/pages/index/index.vue b/pages/index/index.vue index 3832ce3..a29060e 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -83,6 +83,13 @@ onLoad(() => { if (fristEntry) { uni.hideTabBar(); } + // 预加载较重页面 + setTimeout(() => { + uni.preloadPage({ url: '/packageA/pages/post/post' }); + uni.preloadPage({ url: '/pages/nearby/nearby' }); + uni.preloadPage({ url: '/pages/chat/chat' }); + uni.preloadPage({ url: '/packageA/pages/choiceness/choiceness' }); + }, 3000); }); onShow(() => { diff --git a/pages/msglog/read.vue b/pages/msglog/read.vue index 58d67a9..b187216 100644 --- a/pages/msglog/read.vue +++ b/pages/msglog/read.vue @@ -35,6 +35,7 @@ {{ item.subTitle || '消息' }} + @@ -83,6 +84,7 @@ defineExpose({ loadData }); } .scrollmain{ padding: 28rpx + height: calc(100% - 56rpx) } .read{ diff --git a/pages/msglog/unread.vue b/pages/msglog/unread.vue index 9181049..b675823 100644 --- a/pages/msglog/unread.vue +++ b/pages/msglog/unread.vue @@ -33,6 +33,7 @@ {{ item.subTitle || '消息' }} + @@ -69,6 +70,7 @@ defineExpose({ loadData }); } .scrollmain{ padding: 28rpx + height: calc(100% - 56rpx) } .read{ diff --git a/pages/nearby/components/four.vue b/pages/nearby/components/four.vue index 130fc65..b11030d 100644 --- a/pages/nearby/components/four.vue +++ b/pages/nearby/components/four.vue @@ -69,13 +69,8 @@ - - + + @@ -341,15 +336,17 @@ defineExpose({ loadData, handleFilterConfirm }); .nearby-scroll overflow: hidden; height: 100%; + background: #f4f4f4; .two-head - margin: 22rpx; + padding: 22rpx; display: flex; flex-direction: column flex-wrap: no-wrap // grid-template-columns: repeat(4, 1fr); // grid-column-gap: 10rpx; // grid-row-gap: 24rpx; - border-radius: 17rpx 17rpx 17rpx 17rpx; + background: #FFFFFF + // border-radius: 17rpx 17rpx 17rpx 17rpx; .head-all{ display: flex; justify-content: space-between; diff --git a/pages/nearby/components/one.vue b/pages/nearby/components/one.vue index 8641473..c3fc9d3 100644 --- a/pages/nearby/components/one.vue +++ b/pages/nearby/components/one.vue @@ -74,13 +74,8 @@ - - + + @@ -365,6 +360,7 @@ defineExpose({ loadData, handleFilterConfirm }); .nearby-scroll overflow: hidden; height: 100%; + background: #f4f4f4; .nearby-map height: 767rpx; background: #e8e8e8; diff --git a/pages/nearby/components/three.vue b/pages/nearby/components/three.vue index 5d2bc68..828ff20 100644 --- a/pages/nearby/components/three.vue +++ b/pages/nearby/components/three.vue @@ -95,13 +95,8 @@ - - + + @@ -359,10 +354,12 @@ defineExpose({ loadData, handleFilterConfirm }); color: #4778EC !important; .nearby-scroll overflow: hidden; + background: #f4f4f4; height: 100% .three-head // margin: 24rpx 0 0 0; padding: 26rpx 0 0 0; + background: #FFFFFF; border-radius: 17rpx 17rpx 17rpx 17rpx; .one-picker height: 100% diff --git a/pages/nearby/components/two.vue b/pages/nearby/components/two.vue index e7b8642..85d4b61 100644 --- a/pages/nearby/components/two.vue +++ b/pages/nearby/components/two.vue @@ -65,13 +65,8 @@ - - + + @@ -256,10 +251,12 @@ defineExpose({ loadData, handleFilterConfirm }); .nearby-scroll overflow: hidden; height: 100%; + background: #f4f4f4; .two-head - margin: 22rpx; + padding: 22rpx; display: flex; flex-wrap: wrap + background: #FFFFFF; // grid-template-columns: repeat(4, 1fr); // grid-column-gap: 10rpx; // grid-row-gap: 24rpx; diff --git a/utils/request.js b/utils/request.js index deb722a..fe39634 100644 --- a/utils/request.js +++ b/utils/request.js @@ -137,10 +137,12 @@ export function createRequest(url, data = {}, method = 'GET', loading = false, h resolve(resData.data) return } - uni.showToast({ - title: msg, - icon: 'none' - }) + if (msg) { + uni.showToast({ + title: msg, + icon: 'none' + }) + } } if (resData.data?.code === 401 || resData.data?.code === 402) { useUserStore().logOut()