4 Commits

21 changed files with 1859 additions and 1035 deletions

View File

@@ -1,4 +1,11 @@
// #ifdef H5
import '@/lib/encryption/sm4.min.js' import '@/lib/encryption/sm4.min.js'
// #endif
// #ifdef APP-PLUS
import { sm4 } from 'sm-crypto';
// #endif
import useUserStore from "../stores/useUserStore"; import useUserStore from "../stores/useUserStore";
import { import {
createRequestWithCache, createRequestWithCache,
@@ -601,7 +608,6 @@ export function sm4Decrypt(key, value, mode = "hex") {
cipherType: mode === 'hex' ? 'hex' : 'base64', cipherType: mode === 'hex' ? 'hex' : 'base64',
padding: 'pkcs#5' padding: 'pkcs#5'
}); });
return decrypted return decrypted
} catch (e) { } catch (e) {

View File

@@ -92,6 +92,7 @@ const handleScrollToLower = () => {
width: 100vw; width: 100vw;
height: calc(100% - var(--window-bottom)); height: calc(100% - var(--window-bottom));
overflow: hidden; overflow: hidden;
} }
.app-container { .app-container {
// background-image: url('@/static/icon/background2.png'); // background-image: url('@/static/icon/background2.png');
@@ -102,6 +103,8 @@ const handleScrollToLower = () => {
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;
width: 100%; width: 100%;
box-sizing: border-box;
padding-top: calc(var(--window-top) + var(--status-bar-height));
.container-header { .container-header {
min-height: calc(88rpx - 14rpx); min-height: calc(88rpx - 14rpx);
text-align: center; text-align: center;

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

@@ -47,13 +47,17 @@ export function useColumnCount(onChange = () => {}) {
columnCount.value = 2 columnCount.value = 2
calcColumn() calcColumn()
// if (process.client) { // if (process.client) {
// #ifdef H5
window.addEventListener('resize', calcColumn) window.addEventListener('resize', calcColumn)
// #endif
// } // }
}) })
onUnmounted(() => { onUnmounted(() => {
// if (process.client) { // if (process.client) {
// #ifdef H5
window.removeEventListener('resize', calcColumn) window.removeEventListener('resize', calcColumn)
// #endif
// } // }
}) })

View File

@@ -31,7 +31,6 @@
<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>
<!-- 只在内网有效 --> <!-- 只在内网有效 -->
<script type="text/javascript" src="./static/js/SM.js"></script> <script type="text/javascript" src="./static/js/SM.js"></script>
<script type="text/javascript" src="./static/js/pixi.min.js"></script>
</head> </head>
<body> <body>

View File

@@ -4,7 +4,7 @@ import {
createUnistorage createUnistorage
} from "./uni_modules/pinia-plugin-unistorage"; } from "./uni_modules/pinia-plugin-unistorage";
import globalFunction from '@/common/globalFunction' import globalFunction from '@/common/globalFunction'
import '@/lib/string-similarity.min.js' // import '@/lib/string-similarity.min.js'
import similarityJobs from '@/utils/similarity_Job.js'; import similarityJobs from '@/utils/similarity_Job.js';
// 组件 // 组件
@@ -24,7 +24,10 @@ import renderCompanyCollectionRecord from '@/components/renderCompanyCollectionR
import renderJobViewRecord from '@/components/renderJobViewRecord/renderJobViewRecord.vue'; import renderJobViewRecord from '@/components/renderJobViewRecord/renderJobViewRecord.vue';
// import Tabbar from '@/components/tabbar/midell-box.vue' // import Tabbar from '@/components/tabbar/midell-box.vue'
// 自动导入 directives 目录下所有指令 // 自动导入 directives 目录下所有指令
// #ifdef H5
console.log(lightAppJssdk) console.log(lightAppJssdk)
// #endif
const directives = import.meta.glob('./directives/*.js', { const directives = import.meta.glob('./directives/*.js', {
eager: true eager: true
}); });
@@ -33,8 +36,11 @@ import {
createSSRApp, createSSRApp,
} from 'vue' } from 'vue'
// #ifdef H5
const foldFeature = window.visualViewport && 'segments' in window.visualViewport const foldFeature = window.visualViewport && 'segments' in window.visualViewport
console.log('是否支持多段屏幕:', foldFeature) console.log('是否支持多段屏幕:', foldFeature)
// #endif
// 全局组件 // 全局组件
export function createApp() { export function createApp() {

763
package-lock.json generated Normal file
View File

@@ -0,0 +1,763 @@
{
"name": "qingdao-employment-service",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"dependencies": {
"pixi.js": "^7.4.2",
"sm-crypto": "^0.3.13"
}
},
"node_modules/@pixi/accessibility": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-7.4.2.tgz",
"integrity": "sha512-R6VEolm8uyy1FB1F2qaLKxVbzXAFTZCF2ka8fl9lsz7We6ZfO4QpXv9ur7DvzratjCQUQVCKo0/V7xL5q1EV/g==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/display": "7.4.2",
"@pixi/events": "7.4.2"
}
},
"node_modules/@pixi/app": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/app/-/app-7.4.2.tgz",
"integrity": "sha512-ugkH3kOgjT8P1mTMY29yCOgEh+KuVMAn8uBxeY0aMqaUgIMysfpnFv+Aepp2CtvI9ygr22NC+OiKl+u+eEaQHw==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/display": "7.4.2"
}
},
"node_modules/@pixi/assets": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/assets/-/assets-7.4.2.tgz",
"integrity": "sha512-anxho59H9egZwoaEdM5aLvYyxoz6NCy3CaQIvNHD1bbGg8L16Ih0e26QSBR5fu53jl8OjT6M7s+p6n7uu4+fGA==",
"license": "MIT",
"dependencies": {
"@types/css-font-loading-module": "^0.0.12"
},
"peerDependencies": {
"@pixi/core": "7.4.2"
}
},
"node_modules/@pixi/color": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/color/-/color-7.4.2.tgz",
"integrity": "sha512-av1LOvhHsiaW8+T4n/FgnOKHby55/w7VcA1HzPIHRBtEcsmxvSCDanT1HU2LslNhrxLPzyVx18nlmalOyt5OBg==",
"license": "MIT",
"dependencies": {
"@pixi/colord": "^2.9.6"
}
},
"node_modules/@pixi/colord": {
"version": "2.9.6",
"resolved": "https://registry.npmjs.org/@pixi/colord/-/colord-2.9.6.tgz",
"integrity": "sha512-nezytU2pw587fQstUu1AsJZDVEynjskwOL+kibwcdxsMBFqPsFFNA7xl0ii/gXuDi6M0xj3mfRJj8pBSc2jCfA==",
"license": "MIT"
},
"node_modules/@pixi/compressed-textures": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/compressed-textures/-/compressed-textures-7.4.2.tgz",
"integrity": "sha512-VJrt7el6O4ZJSWkeOGXwrhJaiLg1UBhHB3fj42VR4YloYkAxpfd9K6s6IcbcVz7n9L48APKBMgHyaB2pX2Ck/A==",
"license": "MIT",
"peerDependencies": {
"@pixi/assets": "7.4.2",
"@pixi/core": "7.4.2"
}
},
"node_modules/@pixi/constants": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-7.4.2.tgz",
"integrity": "sha512-N9vn6Wpz5WIQg7ugUg2+SdqD2u2+NM0QthE8YzLJ4tLH2Iz+/TrnPKUJzeyIqbg3sxJG5ZpGGPiacqIBpy1KyA==",
"license": "MIT"
},
"node_modules/@pixi/core": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/core/-/core-7.4.2.tgz",
"integrity": "sha512-UbMtgSEnyCOFPzbE6ThB9qopXxbZ5GCof2ArB4FXOC5Xi/83MOIIYg5kf5M8689C5HJMhg2SrJu3xLKppF+CMg==",
"license": "MIT",
"dependencies": {
"@pixi/color": "7.4.2",
"@pixi/constants": "7.4.2",
"@pixi/extensions": "7.4.2",
"@pixi/math": "7.4.2",
"@pixi/runner": "7.4.2",
"@pixi/settings": "7.4.2",
"@pixi/ticker": "7.4.2",
"@pixi/utils": "7.4.2"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/pixijs"
}
},
"node_modules/@pixi/display": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/display/-/display-7.4.2.tgz",
"integrity": "sha512-DaD0J7gIlNlzO0Fdlby/0OH+tB5LtCY6rgFeCBKVDnzmn8wKW3zYZRenWBSFJ0Psx6vLqXYkSIM/rcokaKviIw==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2"
}
},
"node_modules/@pixi/events": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/events/-/events-7.4.2.tgz",
"integrity": "sha512-Jw/w57heZjzZShIXL0bxOvKB+XgGIevyezhGtfF2ZSzQoSBWo+Fj1uE0QwKd0RIaXegZw/DhSmiMJSbNmcjifA==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/display": "7.4.2"
}
},
"node_modules/@pixi/extensions": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/extensions/-/extensions-7.4.2.tgz",
"integrity": "sha512-Hmx2+O0yZ8XIvgomHM9GZEGcy9S9Dd8flmtOK5Aa3fXs/8v7xD08+ANQpN9ZqWU2Xs+C6UBlpqlt2BWALvKKKA==",
"license": "MIT"
},
"node_modules/@pixi/extract": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-7.4.2.tgz",
"integrity": "sha512-JOX27TRWjVEjauGBbF8PU7/g6LYXnivehdgqS5QlVDv1CNHTOrz/j3MdKcVWOhyZPbH5c9sh7lxyRxvd9AIuTQ==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2"
}
},
"node_modules/@pixi/filter-alpha": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-7.4.2.tgz",
"integrity": "sha512-9OsKJ+yvY2wIcQXwswj5HQBiwNGymwmqdxfp7mo+nZSBoDmxUqvMZzE9UNJ3eUlswuNvNRO8zNOsQvwdz7WFww==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2"
}
},
"node_modules/@pixi/filter-blur": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-7.4.2.tgz",
"integrity": "sha512-gOXBbIUx6CRZP1fmsis2wLzzSsofrqmIHhbf1gIkZMIQaLsc9T7brj+PaLTTiOiyJgnvGN5j20RZnkERWWKV0Q==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2"
}
},
"node_modules/@pixi/filter-color-matrix": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-7.4.2.tgz",
"integrity": "sha512-ykZiR59Gvj80UKs9qm7jeUTKvn+wWk6HBVJOmJbK9jFK5juakDWp7BbH26U78Q61EWj97kI1FdfcbMkuQ7rqkA==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2"
}
},
"node_modules/@pixi/filter-displacement": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-7.4.2.tgz",
"integrity": "sha512-QS/eWp/ivsxef3xapNeGwpPX7vrqQQeo99Fux4k5zsvplnNEsf91t6QYJLG776AbZEu/qh8VYRBA5raIVY/REw==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2"
}
},
"node_modules/@pixi/filter-fxaa": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-7.4.2.tgz",
"integrity": "sha512-U/ptJgDsfs/r8y2a6gCaiPfDu2IFAxpQ4wtfmBpz6vRhqeE4kI8yNIUx5dZbui57zlsJaW0BNacOQxHU0vLkyQ==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2"
}
},
"node_modules/@pixi/filter-noise": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-7.4.2.tgz",
"integrity": "sha512-Vy9ViBFhZEGh6xKkd3kFWErolZTwv1Y5Qb1bV7qPIYbvBECYsqzlR4uCrrjBV6KKm0PufpG/+NKC5vICZaqKzg==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2"
}
},
"node_modules/@pixi/graphics": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-7.4.2.tgz",
"integrity": "sha512-jH4/Tum2RqWzHGzvlwEr7HIVduoLO57Ze705N2zQPkUD57TInn5911aGUeoua7f/wK8cTLGzgB9BzSo2kTdcHw==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/display": "7.4.2",
"@pixi/sprite": "7.4.2"
}
},
"node_modules/@pixi/math": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/math/-/math-7.4.2.tgz",
"integrity": "sha512-7jHmCQoYk6e0rfSKjdNFOPl0wCcdgoraxgteXJTTHv3r0bMNx2pHD9FJ0VvocEUG7XHfj55O3+u7yItOAx0JaQ==",
"license": "MIT"
},
"node_modules/@pixi/mesh": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-7.4.2.tgz",
"integrity": "sha512-mEkKyQvvMrYXC3pahvH5WBIKtrtB63WixRr91ANFI7zXD+ESG6Ap6XtxMCJmXDQPwBDNk7SWVMiCflYuchG7kA==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/display": "7.4.2"
}
},
"node_modules/@pixi/mesh-extras": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-7.4.2.tgz",
"integrity": "sha512-vNR/7wjxjs7sv9fGoKkHyU91ZAD+7EnMHBS5F3CVISlOIFxLi96NNZCB81oUIdky/90pHw40johd/4izR5zTyw==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/mesh": "7.4.2"
}
},
"node_modules/@pixi/mixin-cache-as-bitmap": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-7.4.2.tgz",
"integrity": "sha512-6dgthi2ruUT/lervSrFDQ7vXkEsHo6CxdgV7W/wNdW1dqgQlKfDvO6FhjXzyIMRLSooUf5FoeluVtfsjkUIYrw==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/display": "7.4.2",
"@pixi/sprite": "7.4.2"
}
},
"node_modules/@pixi/mixin-get-child-by-name": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-7.4.2.tgz",
"integrity": "sha512-0Cfw8JpQhsixprxiYph4Lj+B5n83Kk4ftNMXgM5xtZz+tVLz5s91qR0MqcdzwTGTJ7utVygiGmS4/3EfR/duRQ==",
"license": "MIT",
"peerDependencies": {
"@pixi/display": "7.4.2"
}
},
"node_modules/@pixi/mixin-get-global-position": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-7.4.2.tgz",
"integrity": "sha512-LcsahbVdX4DFS2IcGfNp4KaXuu7SjAwUp/flZSGIfstyKOKb5FWFgihtqcc9ZT4coyri3gs2JbILZub/zPZj1w==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/display": "7.4.2"
}
},
"node_modules/@pixi/particle-container": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/particle-container/-/particle-container-7.4.2.tgz",
"integrity": "sha512-B78Qq86kt0lEa5WtB2YFIm3+PjhKfw9La9R++GBSgABl+g13s2UaZ6BIPxvY3JxWMdxPm4iPrQPFX1QWRN68mw==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/display": "7.4.2",
"@pixi/sprite": "7.4.2"
}
},
"node_modules/@pixi/prepare": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/prepare/-/prepare-7.4.2.tgz",
"integrity": "sha512-PugyMzReCHXUzc3so9PPJj2OdHwibpUNWyqG4mWY2UUkb6c8NAGK1AnAPiscOvLilJcv/XQSFoNhX+N1jrvJEg==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/display": "7.4.2",
"@pixi/graphics": "7.4.2",
"@pixi/text": "7.4.2"
}
},
"node_modules/@pixi/runner": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-7.4.2.tgz",
"integrity": "sha512-LPBpwym4vdyyDY5ucF4INQccaGyxztERyLTY1YN6aqJyyMmnc7iqXlIKt+a0euMBtNoLoxy6MWMvIuZj0JfFPA==",
"license": "MIT"
},
"node_modules/@pixi/settings": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-7.4.2.tgz",
"integrity": "sha512-pMN+L6aWgvUbwhFIL/BTHKe2ShYGPZ8h9wlVBnFHMtUcJcFLMF1B3lzuvCayZRepOphs6RY0TqvnDvVb585JhQ==",
"license": "MIT",
"dependencies": {
"@pixi/constants": "7.4.2",
"@types/css-font-loading-module": "^0.0.12",
"ismobilejs": "^1.1.0"
}
},
"node_modules/@pixi/sprite": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-7.4.2.tgz",
"integrity": "sha512-Ccf/OVQsB+HQV0Fyf5lwD+jk1jeU7uSIqEjbxenNNssmEdB7S5qlkTBV2EJTHT83+T6Z9OMOHsreJZerydpjeg==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/display": "7.4.2"
}
},
"node_modules/@pixi/sprite-animated": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-7.4.2.tgz",
"integrity": "sha512-QPT6yxCUGOBN+98H3pyIZ1ZO6Y7BN1o0Q2IMZEsD1rNfZJrTYS3Q8VlCG5t2YlFlcB8j5iBo24bZb6FUxLOmsQ==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/sprite": "7.4.2"
}
},
"node_modules/@pixi/sprite-tiling": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-7.4.2.tgz",
"integrity": "sha512-Z8PP6ewy3nuDYL+NeEdltHAhuucVgia33uzAitvH3OqqRSx6a6YRBFbNLUM9Sx+fBO2Lk3PpV1g6QZX+NE5LOg==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/display": "7.4.2",
"@pixi/sprite": "7.4.2"
}
},
"node_modules/@pixi/spritesheet": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-7.4.2.tgz",
"integrity": "sha512-YIvHdpXW+AYp8vD0NkjJmrdnVHTZKidCnx6k8ATSuuvCT6O5Tuh2N/Ul2oDj4/QaePy0lVhyhAbZpJW00Jr7mQ==",
"license": "MIT",
"peerDependencies": {
"@pixi/assets": "7.4.2",
"@pixi/core": "7.4.2"
}
},
"node_modules/@pixi/text": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/text/-/text-7.4.2.tgz",
"integrity": "sha512-rZZWpJNsIQ8WoCWrcVg8Gi6L/PDakB941clo6dO3XjoII2ucoOUcnpe5HIkudxi2xPvS/8Bfq990gFEx50TP5A==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/sprite": "7.4.2"
}
},
"node_modules/@pixi/text-bitmap": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-7.4.2.tgz",
"integrity": "sha512-lPBMJ83JnpFVL+6ckQ8KO8QmwdPm0z9Zs/M0NgFKH2F+BcjelRNnk80NI3O0qBDYSEDQIE+cFbKoZ213kf7zwA==",
"license": "MIT",
"peerDependencies": {
"@pixi/assets": "7.4.2",
"@pixi/core": "7.4.2",
"@pixi/display": "7.4.2",
"@pixi/mesh": "7.4.2",
"@pixi/text": "7.4.2"
}
},
"node_modules/@pixi/text-html": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/text-html/-/text-html-7.4.2.tgz",
"integrity": "sha512-duOu8oDYeDNuyPozj2DAsQ5VZBbRiwIXy78Gn7H2pCiEAefw/Uv5jJYwdgneKME0e1tOxz1eOUGKPcI6IJnZjw==",
"license": "MIT",
"peerDependencies": {
"@pixi/core": "7.4.2",
"@pixi/display": "7.4.2",
"@pixi/sprite": "7.4.2",
"@pixi/text": "7.4.2"
}
},
"node_modules/@pixi/ticker": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-7.4.2.tgz",
"integrity": "sha512-cAvxCh/KI6IW4m3tp2b+GQIf+DoSj9NNmPJmsOeEJ7LzvruG8Ps7SKI6CdjQob5WbceL1apBTDbqZ/f77hFDiQ==",
"license": "MIT",
"dependencies": {
"@pixi/extensions": "7.4.2",
"@pixi/settings": "7.4.2",
"@pixi/utils": "7.4.2"
}
},
"node_modules/@pixi/utils": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-7.4.2.tgz",
"integrity": "sha512-aU/itcyMC4TxFbmdngmak6ey4kC5c16Y5ntIYob9QnjNAfD/7GTsYIBnP6FqEAyO1eq0MjkAALxdONuay1BG3g==",
"license": "MIT",
"dependencies": {
"@pixi/color": "7.4.2",
"@pixi/constants": "7.4.2",
"@pixi/settings": "7.4.2",
"@types/earcut": "^2.1.0",
"earcut": "^2.2.4",
"eventemitter3": "^4.0.0",
"url": "^0.11.0"
}
},
"node_modules/@types/css-font-loading-module": {
"version": "0.0.12",
"resolved": "https://registry.npmjs.org/@types/css-font-loading-module/-/css-font-loading-module-0.0.12.tgz",
"integrity": "sha512-x2tZZYkSxXqWvTDgveSynfjq/T2HyiZHXb00j/+gy19yp70PHCizM48XFdjBCWH7eHBD0R5i/pw9yMBP/BH5uA==",
"license": "MIT"
},
"node_modules/@types/earcut": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-2.1.4.tgz",
"integrity": "sha512-qp3m9PPz4gULB9MhjGID7wpo3gJ4bTGXm7ltNDsmOvsPduTeHp8wSW9YckBj3mljeOh4F0m2z/0JKAALRKbmLQ==",
"license": "MIT"
},
"node_modules/call-bind-apply-helpers": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/call-bound": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
"integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
"get-intrinsic": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
"es-errors": "^1.3.0",
"gopd": "^1.2.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/earcut": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz",
"integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==",
"license": "ISC"
},
"node_modules/es-define-property": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-object-atoms": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
"license": "MIT"
},
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-intrinsic": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
"get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
"hasown": "^2.0.2",
"math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"license": "MIT",
"dependencies": {
"dunder-proto": "^1.0.1",
"es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/gopd": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-symbols": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/ismobilejs": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz",
"integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==",
"license": "MIT"
},
"node_modules/jsbn": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
"integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
"license": "MIT"
},
"node_modules/math-intrinsics": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/object-inspect": {
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
"integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/pixi.js": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-7.4.2.tgz",
"integrity": "sha512-TifqgHGNofO7UCEbdZJOpUu7dUnpu4YZ0o76kfCqxDa4RS8ITc9zjECCbtalmuNXkVhSEZmBKQvE7qhHMqw/xg==",
"license": "MIT",
"dependencies": {
"@pixi/accessibility": "7.4.2",
"@pixi/app": "7.4.2",
"@pixi/assets": "7.4.2",
"@pixi/compressed-textures": "7.4.2",
"@pixi/core": "7.4.2",
"@pixi/display": "7.4.2",
"@pixi/events": "7.4.2",
"@pixi/extensions": "7.4.2",
"@pixi/extract": "7.4.2",
"@pixi/filter-alpha": "7.4.2",
"@pixi/filter-blur": "7.4.2",
"@pixi/filter-color-matrix": "7.4.2",
"@pixi/filter-displacement": "7.4.2",
"@pixi/filter-fxaa": "7.4.2",
"@pixi/filter-noise": "7.4.2",
"@pixi/graphics": "7.4.2",
"@pixi/mesh": "7.4.2",
"@pixi/mesh-extras": "7.4.2",
"@pixi/mixin-cache-as-bitmap": "7.4.2",
"@pixi/mixin-get-child-by-name": "7.4.2",
"@pixi/mixin-get-global-position": "7.4.2",
"@pixi/particle-container": "7.4.2",
"@pixi/prepare": "7.4.2",
"@pixi/sprite": "7.4.2",
"@pixi/sprite-animated": "7.4.2",
"@pixi/sprite-tiling": "7.4.2",
"@pixi/spritesheet": "7.4.2",
"@pixi/text": "7.4.2",
"@pixi/text-bitmap": "7.4.2",
"@pixi/text-html": "7.4.2"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/pixijs"
}
},
"node_modules/punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
"license": "MIT"
},
"node_modules/qs": {
"version": "6.14.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
"integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==",
"license": "BSD-3-Clause",
"dependencies": {
"side-channel": "^1.1.0"
},
"engines": {
"node": ">=0.6"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/side-channel": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
"integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"object-inspect": "^1.13.3",
"side-channel-list": "^1.0.0",
"side-channel-map": "^1.0.1",
"side-channel-weakmap": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/side-channel-list": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
"integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"object-inspect": "^1.13.3"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/side-channel-map": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
"integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.5",
"object-inspect": "^1.13.3"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/side-channel-weakmap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
"integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.5",
"object-inspect": "^1.13.3",
"side-channel-map": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/sm-crypto": {
"version": "0.3.13",
"resolved": "https://registry.npmjs.org/sm-crypto/-/sm-crypto-0.3.13.tgz",
"integrity": "sha512-ztNF+pZq6viCPMA1A6KKu3bgpkmYti5avykRHbcFIdSipFdkVmfUw2CnpM2kBJyppIalqvczLNM3wR8OQ0pT5w==",
"license": "MIT",
"dependencies": {
"jsbn": "^1.1.0"
}
},
"node_modules/url": {
"version": "0.11.4",
"resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz",
"integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==",
"license": "MIT",
"dependencies": {
"punycode": "^1.4.1",
"qs": "^6.12.3"
},
"engines": {
"node": ">= 0.4"
}
}
}
}

6
package.json Normal file
View File

@@ -0,0 +1,6 @@
{
"dependencies": {
"pixi.js": "^7.4.2",
"sm-crypto": "^0.3.13"
}
}

View File

@@ -184,10 +184,13 @@ function getThirdPartyJobsList(type = 'add') {
let params = { let params = {
current: pageState.current, current: pageState.current,
pageSize: pageState.pageSize, pageSize: pageState.pageSize,
gsID:companyId,
gsmc:companyName,
zphID:zphId
}; };
$api.createRequest( $api.createRequest(
`/app/internal/jobThirdPart?gsID=${companyId}&gsmc=${companyName}&zphID=${zphId}`, `/app/internal/jobThirdPart`,
params, params,
'GET', 'GET',
true true

View File

@@ -153,9 +153,11 @@ function getCompanyList(type = 'add') {
let params = { let params = {
current: pageState.current, current: pageState.current,
pageSize: pageState.pageSize, pageSize: pageState.pageSize,
zphID:jobFairId,
zphmc:jobFairName,
}; };
$api.createRequest( $api.createRequest(
`/app/internal/companyThirdPart/?zphID=${jobFairId}&zphmc=${jobFairName}`, `/app/internal/companyThirdPart/`,
params, params,
'GET', 'GET',
true true

View File

@@ -285,7 +285,12 @@ function getCompanyIsAJobs(...args) {
if (dataType.value === 2) { if (dataType.value === 2) {
// 第三方数据获取公司职位数量 // 第三方数据获取公司职位数量
const [gsID, gsmc, zphID] = args; const [gsID, gsmc, zphID] = args;
$api.createRequest(`/app/internal/jobThirdPart?gsID=${gsID}&gsmc=${gsmc}&zphID=${zphID}`).then((resData) => { const params = {
gsID:gsID,
gsmc:gsmc,
zphID:zphID
}
$api.createRequest(`/app/internal/jobThirdPart`,params).then((resData) => {
companyCount.value = resData.total; companyCount.value = resData.total;
}); });
} else { } else {

View File

@@ -26,7 +26,7 @@
<view <view
class="item button-click" class="item button-click"
:class="{ :class="{
optional: item.isThisMonth && hasZphInData(item), optional: (item.isThisMonth && hasZphInData(item)) || hasViewRecordInData(item),
noOptional: !item.isThisMonth, noOptional: !item.isThisMonth,
active: current.date === item.date && item.isThisMonth, active: current.date === item.date && item.isThisMonth,
}" }"
@@ -62,6 +62,7 @@ const pages = reactive({
year: 0, year: 0,
month: 0, month: 0,
}); });
const hasViewRecordDateArray = ref([]);
const hasZphDateArray = ref([]); const hasZphDateArray = ref([]);
onLoad((options) => { onLoad((options) => {
@@ -76,6 +77,7 @@ onLoad((options) => {
new Array(recordNum.value + 1).fill(null).map(() => { new Array(recordNum.value + 1).fill(null).map(() => {
addMonth(); addMonth();
}); });
updateViewRecordDateArray()
} else { } else {
initPagesDate(); initPagesDate();
new Array(recordNum.value).fill(null).map(() => { new Array(recordNum.value).fill(null).map(() => {
@@ -83,7 +85,7 @@ onLoad((options) => {
}); });
} }
if (options.entrance === 'careerfair') { if (options.entrance === 'careerfair') {
updateDateArray(); updateCareerFairDateArray();
} }
}); });
@@ -92,6 +94,17 @@ function hasZphInData(item) {
return false; return false;
} }
const dateArray = Array.isArray(hasViewRecordDateArray.value) ? hasViewRecordDateArray.value : [];
return dateArray.some((date) => {
return typeof date === 'string' && date === item.date;
});
}
function hasViewRecordInData(item) {
if (!item || typeof item.date !== 'string') {
return false;
}
const dateArray = Array.isArray(hasZphDateArray.value) ? hasZphDateArray.value : []; const dateArray = Array.isArray(hasZphDateArray.value) ? hasZphDateArray.value : [];
return dateArray.some((date) => { return dateArray.some((date) => {
@@ -99,7 +112,7 @@ function hasZphInData(item) {
}); });
} }
async function updateDateArray() { async function updateCareerFairDateArray() {
const LoadCache = (resData) => { const LoadCache = (resData) => {
if (resData.code === 200) { if (resData.code === 200) {
hasZphDateArray.value = resData.data; hasZphDateArray.value = resData.data;
@@ -107,6 +120,14 @@ async function updateDateArray() {
}; };
$api.createRequestWithCache('/app/internal/getDateList', {}, 'GET', false, {}, LoadCache).then(LoadCache); $api.createRequestWithCache('/app/internal/getDateList', {}, 'GET', false, {}, LoadCache).then(LoadCache);
} }
async function updateViewRecordDateArray() {
const LoadCache = (resData) => {
if (resData.code === 200) {
hasViewRecordDateArray.value = resData.data;
}
};
$api.createRequestWithCache('/app/user/getJobReviewDate', {}, 'GET', false, {}, LoadCache).then(LoadCache);
}
function backParams() { function backParams() {
if (isValidDateString(current.value.date)) { if (isValidDateString(current.value.date)) {
@@ -307,6 +328,7 @@ function getMonthCalendarData({ year, month, selectableDates = [] }) {
justify-content: center justify-content: center
border-radius: 20rpx 20rpx 20rpx 20rpx; border-radius: 20rpx 20rpx 20rpx 20rpx;
padding: 16rpx 0 padding: 16rpx 0
margin: 0 2rpx;
margin-bottom: 20rpx margin-bottom: 20rpx
.item-top{ .item-top{
font-weight: 600; font-weight: 600;

View File

@@ -5,9 +5,7 @@
"path": "pages/index/index", "path": "pages/index/index",
"style": { "style": {
"navigationBarTitleText": "青岛智慧就业平台", "navigationBarTitleText": "青岛智慧就业平台",
// #ifdef H5
"navigationStyle": "custom" "navigationStyle": "custom"
// #endif
} }
}, },
{ {

View File

@@ -45,7 +45,9 @@
<view class="container-main"> <view class="container-main">
<scroll-view scroll-y class="main-scroll" @scrolltolower="handleScrollToLower"> <scroll-view scroll-y class="main-scroll" @scrolltolower="handleScrollToLower">
<view class="cards"> <view class="cards">
<!-- #ifdef H5 -->
<transition-group name="stagger" tag="view" :css="true"> <transition-group name="stagger" tag="view" :css="true">
<!-- #endif -->
<view <view
class="card press-button" class="card press-button"
v-for="(item, index) in fairList" v-for="(item, index) in fairList"
@@ -95,7 +97,9 @@
<view class="recommend-card-line"></view> <view class="recommend-card-line"></view>
<view class="card-footer">内容简介{{ item.zphjj }}</view> <view class="card-footer">内容简介{{ item.zphjj }}</view>
</view> </view>
<!-- #ifdef H5 -->
</transition-group> </transition-group>
<!-- #endif -->
</view> </view>
<empty v-if="!fairList.length" content="暂时没有结果,下一天也许就有惊喜"></empty> <empty v-if="!fairList.length" content="暂时没有结果,下一天也许就有惊喜"></empty>
</scroll-view> </scroll-view>
@@ -336,6 +340,8 @@ function getNextDates({ startDate = '', count = 6 }) {
.container-header { .container-header {
background: url('@/static/icon/background2.png') 0 0 no-repeat; background: url('@/static/icon/background2.png') 0 0 no-repeat;
background-size: 100% 400rpx; background-size: 100% 400rpx;
box-sizing: border-box;
padding-top: calc(var(--window-top) + var(--status-bar-height));
.header-top{ .header-top{
display: flex; display: flex;
line-height: calc(88rpx - 14rpx); line-height: calc(88rpx - 14rpx);

View File

@@ -1,371 +1,386 @@
<template> <template>
<view>
<view class="container" id="pixi-box" ref="pixiContainerRef"></view> <view class="container" id="pixi-box" ref="pixiContainerRef"></view>
<!-- renderjs 通信组件 -->
<view style="display: none" :change:random="appModule.initPixi" :random="random" />
</view>
</template> </template>
<script setup> <script>
import { onMounted, onUnmounted, ref, nextTick } from 'vue'; export default {
const emit = defineEmits(['tag-click']); data: () => ({
random: 0,
}),
mounted() {
this.triggerRender();
},
methods: {
triggerRender() {
this.random++;
},
tagClick(tagData) {
this.$emit('tag-click', tagData);
},
},
};
</script>
// DOM Ref <script module="appModule" lang="renderjs">
const pixiContainerRef = ref(null); import * as PIXI from "pixi.js";
// PIXI 变量 // PIXI 变量
let app = null; let app = null;
let tagsContainer = null; let tagsContainer = null;
let activeTagInstances = []; let activeTagInstances = [];
// 配置数据 // 配置数据
const mockTags = [ const mockTags = [
{ name: '医生', bgColor: 0x0069fe, fontColor: 0xffffff, size: 17, opacity: 1.0, angle: 0, radius: 0 }, { name: "医生", bgColor: 0x0069fe, fontColor: 0xffffff, size: 17, opacity: 1.0, angle: 0, radius: 0 },
{ {
name: '工程师', name: "工程师",
bgColor: 0x87e2ec, bgColor: 0x87e2ec,
fontColor: 0xffffff, fontColor: 0xffffff,
size: 14, size: 14,
opacity: 1, opacity: 1,
angle: -Math.PI / 2, angle: -Math.PI / 2,
radius: 68, radius: 68,
tailRotation: Math.PI / 2, tailRotation: Math.PI / 2,
}, },
{ {
name: '建筑师', name: "建筑师",
bgColor: 0xffebeb, bgColor: 0xffebeb,
tailColor: 0xffe1e1, tailColor: 0xffe1e1,
fontColor: 0xff6969, fontColor: 0xff6969,
size: 11.5, size: 11.5,
opacity: 1, opacity: 1,
angle: -Math.PI / 4.2, angle: -Math.PI / 4.2,
radius: 125, radius: 125,
tailRotation: (3 * Math.PI) / 4, tailRotation: (3 * Math.PI) / 4,
}, },
{ {
name: '律师', name: "律师",
bgColor: 0x21ea85, bgColor: 0x21ea85,
fontColor: 0xffffff, fontColor: 0xffffff,
size: 15, size: 15,
opacity: 1, opacity: 1,
angle: -Math.PI / 10, angle: -Math.PI / 10,
radius: 130, radius: 130,
tailRotation: (3 * Math.PI) / 4, tailRotation: (3 * Math.PI) / 4,
}, },
{ {
name: '记者', name: "记者",
bgColor: 0xebf3ff, bgColor: 0xebf3ff,
tailColor: 0xb9d3ff, tailColor: 0xb9d3ff,
fontColor: 0x1d71ef, fontColor: 0x1d71ef,
size: 12, size: 12,
opacity: 1, opacity: 1,
angle: Math.PI / 120, angle: Math.PI / 120,
radius: 130, radius: 130,
tailRotation: (3 * Math.PI) / 3.4, tailRotation: (3 * Math.PI) / 3.4,
}, },
{ {
name: '程序员', name: "程序员",
bgColor: 0xffd4b6, bgColor: 0xffd4b6,
fontColor: 0xffffff, fontColor: 0xffffff,
size: 14, size: 14,
opacity: 1, opacity: 1,
angle: Math.PI / 7, angle: Math.PI / 7,
radius: 120, radius: 120,
tailRotation: (5 * Math.PI) / 4, tailRotation: (5 * Math.PI) / 4,
}, },
{ {
name: '摄影师', name: "摄影师",
bgColor: 0xd8e5fe, bgColor: 0xd8e5fe,
tailColor: 0xb9d3ff, tailColor: 0xb9d3ff,
fontColor: 0x1d71ef, fontColor: 0x1d71ef,
size: 11, size: 11,
opacity: 1, opacity: 1,
angle: Math.PI / 3, angle: Math.PI / 3,
radius: 79, radius: 79,
tailRotation: (3 * Math.PI) / 2, tailRotation: (3 * Math.PI) / 2,
}, },
{ {
name: '设计师', name: "设计师",
bgColor: 0xff9400, bgColor: 0xff9400,
fontColor: 0xffffff, fontColor: 0xffffff,
size: 14, size: 14,
opacity: 1, opacity: 1,
angle: (2 * Math.PI) / 3, angle: (2 * Math.PI) / 3,
radius: 92, radius: 92,
tailRotation: (7 * Math.PI) / 4, tailRotation: (7 * Math.PI) / 4,
}, },
{ {
name: '心理咨询师', name: "心理咨询师",
bgColor: 0xebf3ff, bgColor: 0xebf3ff,
tailColor: 0xb9d3ff, tailColor: 0xb9d3ff,
fontColor: 0x1d71ef, fontColor: 0x1d71ef,
size: 10.5, size: 10.5,
opacity: 1, opacity: 1,
angle: (5.4 * Math.PI) / 6, angle: (5.4 * Math.PI) / 6,
radius: 110, radius: 110,
tailRotation:(3 * Math.PI) /1.78, tailRotation: (3 * Math.PI) / 1.78,
}, },
{ {
name: '护士', name: "护士",
bgColor: 0xff6969, bgColor: 0xff6969,
fontColor: 0xffffff, fontColor: 0xffffff,
size: 15, size: 15,
opacity: 1, opacity: 1,
angle: (6.3 * Math.PI) / 5.9, angle: (6.3 * Math.PI) / 5.9,
radius: 110, radius: 110,
tailRotation: Math.PI / 4, tailRotation: Math.PI / 4,
}, },
{ {
name: '会计', name: "会计",
bgColor: 0xfce9c9, bgColor: 0xfce9c9,
fontColor: 0xfbc55f, fontColor: 0xfbc55f,
size: 13, size: 13,
opacity: 1, opacity: 1,
angle: (7.2 * Math.PI) / 5.9, angle: (7.2 * Math.PI) / 5.9,
radius: 120, radius: 120,
tailRotation: Math.PI / 4, tailRotation: Math.PI / 4,
}, },
]; ];
onMounted(async () => { const clamp = (num, min, max) => Math.min(Math.max(num, min), max);
await nextTick();
setTimeout(() => {
initPixi();
}, 100);
window.addEventListener('resize', handleResize);
});
onUnmounted(() => { export default {
window.removeEventListener('resize', handleResize); data() {
return {
}
},
beforeDestroy() {
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;
} }
}); window.removeEventListener("resize", this.handleResize());
},
const getContainerDOM = () => { methods: {
const refVal = pixiContainerRef.value; async initPixi (random) {
if (!refVal) return document.getElementById('pixi-box'); if(!random) return
if (refVal.$el) return refVal.$el; const container = document.querySelector('#pixi-box');
return refVal; if (!container) return;
}; const width = container.clientWidth || 300;
const height = container.clientHeight || 300;
console.log(width,height);
const clamp = (num, min, max) => Math.min(Math.max(num, min), max); if (app) return;
const initPixi = () => { app = new PIXI.Application({
const container = getContainerDOM();
if (!container) return;
const width = container.clientWidth || 300;
const height = container.clientHeight || 300;
if (app) return;
app = new PIXI.Application({
width: width, width: width,
height: height, height: height,
backgroundAlpha: 0, backgroundAlpha: 0,
backgroundColor: 0xf5f7fa, backgroundColor: 0xf5f7fa,
antialias: true, antialias: true,
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);
tagsContainer = new PIXI.Container(); tagsContainer = new PIXI.Container();
app.stage.addChild(tagsContainer); app.stage.addChild(tagsContainer);
renderScene(width, height); this.renderScene(width, height);
}; window.addEventListener("resize", this.handleResize());
},
renderScene (sw, sh) {
tagsContainer.removeChildren();
activeTagInstances = [];
const renderScene = (sw, sh) => { const baseSize = 375;
tagsContainer.removeChildren(); const scaleFactor = (Math.min(sw, sh) / baseSize) * 0.9;
activeTagInstances = [];
const baseSize = 375; mockTags.forEach((data, index) => {
const scaleFactor = (Math.min(sw, sh) / baseSize) * 0.9; const scaledRadius = data.radius * (scaleFactor < 1 ? 1 : scaleFactor * 0.8);
mockTags.forEach((data, index) => { let x = sw / 2 + scaledRadius * Math.cos(data.angle);
const scaledRadius = data.radius * (scaleFactor < 1 ? 1 : scaleFactor * 0.8); let y = sh / 2 + scaledRadius * Math.sin(data.angle);
let x = sw / 2 + scaledRadius * Math.cos(data.angle); const tag = this.createTag(data, index);
let y = sh / 2 + scaledRadius * Math.sin(data.angle);
const tag = createTag(data, index); tagsContainer.addChild(tag);
tagsContainer.addChild(tag); const safeW = tag.width / 2 + 10;
const safeH = tag.height / 2 + 10;
const safeW = tag.width / 2 + 10; // 强制修正 x 和 y使其不超出屏幕
const safeH = tag.height / 2 + 10; x = clamp(x, safeW, sw - safeW);
y = clamp(y, safeH, sh - safeH);
// 强制修正 x 和 y使其不超出屏幕 tag.x = x;
x = clamp(x, safeW, sw - safeW); tag.y = y;
y = clamp(y, safeH, sh - safeH);
tag.x = x; // 4. 保存元数据
tag.y = y; tag.userData = {
originalX: x,
// 4. 保存元数据 originalY: y,
tag.userData = { angle: data.angle,
originalX: x, radius: scaledRadius,
originalY: y, floatOffset: Math.random() * Math.PI * 2,
angle: data.angle, floatSpeed: 0.01 + Math.random() * 0.02,
radius: scaledRadius, floatRange: 2 + Math.random() * 2,
floatOffset: Math.random() * Math.PI * 2, safeH: safeH,
floatSpeed: 0.01 + Math.random() * 0.02,
floatRange: 2 + Math.random() * 2,
safeH: safeH,
};
if (data.radius > 0) {
const tail = createCometTail( data.tailColor || data.bgColor, data.tailRotation, tag.width);
tag.addChildAt(tail, 0);
tag.updateTail = () => tail.updateAnim();
}
activeTagInstances.push(tag);
});
// 动画循环
app.ticker.add(() => {
const screenH = app.screen.height;
activeTagInstances.forEach((tag) => {
const meta = tag.userData;
if (meta) {
// 计算新的浮动位置
meta.floatOffset += meta.floatSpeed;
let nextY = meta.originalY + Math.sin(meta.floatOffset) * meta.floatRange;
// 再次进行边界检查
if (nextY < meta.safeH) nextY = meta.safeH;
if (nextY > screenH - meta.safeH) nextY = screenH - meta.safeH;
tag.y = nextY;
if (tag.updateTail) tag.updateTail();
}
});
});
};
const createTag = (tagData, index) => {
const tagGroup = new PIXI.Container();
tagGroup.eventMode = 'static';
tagGroup.cursor = 'pointer';
tagGroup.on('pointertap', () => emit('tag-click', tagData));
const text = new PIXI.Text(tagData.name, {
fontFamily: ['PingFang SC', 'Microsoft YaHei', 'Arial'],
fontSize: tagData.size,
fill: tagData.fontColor,
padding: 4,
resolution: 2,
});
text.anchor.set(0.5);
const paddingH = 26;
const paddingV = 10;
let bgWidth = text.width + paddingH;
let bgHeight = text.height + paddingV;
if (index === 0) bgWidth = Math.max(bgWidth, tagData.size * 4.5);
const bg = new PIXI.Graphics();
bg.beginFill(tagData.bgColor, tagData.opacity ?? 1);
bg.drawRoundedRect(-bgWidth / 2, -bgHeight / 2, bgWidth, bgHeight, bgHeight / 2);
bg.endFill();
tagGroup.addChild(bg);
tagGroup.addChild(text);
return tagGroup;
};
const createCometTail = (bgColor, tailRotation, parentWidth) => {
const tailGroup = new PIXI.Container();
const graphics = new PIXI.Graphics();
tailGroup.addChild(graphics);
const baseLength = 45;
const startWidth = parentWidth * 0.6;
const endWidth = 20;
let breathPhase = Math.random() * Math.PI * 2;
const breathSpeed = 0.04;
tailGroup.updateAnim = () => {
breathPhase += breathSpeed;
const breathScale = 0.85 + 0.15 * Math.sin(breathPhase);
graphics.clear();
const currentLength = baseLength * breathScale;
const cos = Math.cos(tailRotation);
const sin = Math.sin(tailRotation);
const perpX = -sin;
const perpY = cos;
const p1 = { x: perpX * (startWidth / 2), y: perpY * (startWidth / 2) };
const p2 = { x: -perpX * (startWidth / 2), y: -perpY * (startWidth / 2) };
const endCX = cos * currentLength;
const endCY = sin * currentLength;
const p3 = { x: endCX - perpX * (endWidth / 2), y: endCY - perpY * (endWidth / 2) };
const p4 = { x: endCX + perpX * (endWidth / 2), y: endCY + perpY * (endWidth / 2) };
const segments = 8;
for (let i = 0; i < segments; i++) {
const t1 = i / segments;
const t2 = (i + 1) / segments;
const alpha = 0.4 * (1 - t1);
const sp1 = { x: p1.x + (p4.x - p1.x) * t1, y: p1.y + (p4.y - p1.y) * t1 };
const sp2 = { x: p2.x + (p3.x - p2.x) * t1, y: p2.y + (p3.y - p2.y) * t1 };
const ep1 = { x: p1.x + (p4.x - p1.x) * t2, y: p1.y + (p4.y - p1.y) * t2 };
const ep2 = { x: p2.x + (p3.x - p2.x) * t2, y: p2.y + (p3.y - p2.y) * t2 };
graphics.beginFill(bgColor, alpha);
graphics.moveTo(sp1.x, sp1.y);
graphics.lineTo(sp2.x, sp2.y);
graphics.lineTo(ep2.x, ep2.y);
graphics.lineTo(ep1.x, ep1.y);
graphics.endFill();
}
}; };
tailGroup.updateAnim();
return tailGroup;
};
const handleResize = () => { if (data.radius > 0) {
const container = getContainerDOM(); const tail = this.createCometTail(data.tailColor || data.bgColor, data.tailRotation, tag.width);
if (!app || !container) return; tag.addChildAt(tail, 0);
tag.updateTail = () => tail.updateAnim();
}
const w = container.clientWidth || 300; activeTagInstances.push(tag);
const h = container.clientHeight || 300; });
app.renderer.resize(w, h); // 动画循环
app.ticker.add(() => {
const screenH = app.screen.height;
activeTagInstances.forEach((tag) => { activeTagInstances.forEach((tag) => {
const meta = tag.userData; const meta = tag.userData;
if (!meta) return; if (meta) {
// 计算新的浮动位置
meta.floatOffset += meta.floatSpeed;
let nextY = meta.originalY + Math.sin(meta.floatOffset) * meta.floatRange;
let newX = w / 2 + meta.radius * Math.cos(meta.angle); // 再次进行边界检查
let newY = h / 2 + meta.radius * Math.sin(meta.angle); if (nextY < meta.safeH) nextY = meta.safeH;
if (nextY > screenH - meta.safeH) nextY = screenH - meta.safeH;
const safeW = tag.width / 2 + 10; tag.y = nextY;
const safeH = tag.height / 2 + 10;
meta.originalX = clamp(newX, safeW, w - safeW); if (tag.updateTail) tag.updateTail();
meta.originalY = clamp(newY, safeH, h - safeH); }
meta.safeH = safeH; // 更新安全高度
tag.x = meta.originalX;
}); });
}; });
},
createTag (tagData, index) {
const tagGroup = new PIXI.Container();
tagGroup.eventMode = "static";
tagGroup.cursor = "pointer";
tagGroup.on("pointertap", () =>{
this.$ownerInstance.callMethod('tagClick', tagData);
});
const text = new PIXI.Text(tagData.name, {
fontFamily: ["PingFang SC", "Microsoft YaHei", "Arial"],
fontSize: tagData.size,
fill: tagData.fontColor,
padding: 4,
resolution: 2,
});
text.anchor.set(0.5);
const paddingH = 26;
const paddingV = 10;
let bgWidth = text.width + paddingH;
let bgHeight = text.height + paddingV;
if (index === 0) bgWidth = Math.max(bgWidth, tagData.size * 4.5);
const bg = new PIXI.Graphics();
bg.beginFill(tagData.bgColor, tagData.opacity ?? 1);
bg.drawRoundedRect(-bgWidth / 2, -bgHeight / 2, bgWidth, bgHeight, bgHeight / 2);
bg.endFill();
tagGroup.addChild(bg);
tagGroup.addChild(text);
return tagGroup;
},
createCometTail (bgColor, tailRotation, parentWidth) {
const tailGroup = new PIXI.Container();
const graphics = new PIXI.Graphics();
tailGroup.addChild(graphics);
const baseLength = 45;
const startWidth = parentWidth * 0.6;
const endWidth = 20;
let breathPhase = Math.random() * Math.PI * 2;
const breathSpeed = 0.04;
tailGroup.updateAnim = () => {
breathPhase += breathSpeed;
const breathScale = 0.85 + 0.15 * Math.sin(breathPhase);
graphics.clear();
const currentLength = baseLength * breathScale;
const cos = Math.cos(tailRotation);
const sin = Math.sin(tailRotation);
const perpX = -sin;
const perpY = cos;
const p1 = { x: perpX * (startWidth / 2), y: perpY * (startWidth / 2) };
const p2 = { x: -perpX * (startWidth / 2), y: -perpY * (startWidth / 2) };
const endCX = cos * currentLength;
const endCY = sin * currentLength;
const p3 = { x: endCX - perpX * (endWidth / 2), y: endCY - perpY * (endWidth / 2) };
const p4 = { x: endCX + perpX * (endWidth / 2), y: endCY + perpY * (endWidth / 2) };
const segments = 8;
for (let i = 0; i < segments; i++) {
const t1 = i / segments;
const t2 = (i + 1) / segments;
const alpha = 0.4 * (1 - t1);
const sp1 = { x: p1.x + (p4.x - p1.x) * t1, y: p1.y + (p4.y - p1.y) * t1 };
const sp2 = { x: p2.x + (p3.x - p2.x) * t1, y: p2.y + (p3.y - p2.y) * t1 };
const ep1 = { x: p1.x + (p4.x - p1.x) * t2, y: p1.y + (p4.y - p1.y) * t2 };
const ep2 = { x: p2.x + (p3.x - p2.x) * t2, y: p2.y + (p3.y - p2.y) * t2 };
graphics.beginFill(bgColor, alpha);
graphics.moveTo(sp1.x, sp1.y);
graphics.lineTo(sp2.x, sp2.y);
graphics.lineTo(ep2.x, ep2.y);
graphics.lineTo(ep1.x, ep1.y);
graphics.endFill();
}
};
tailGroup.updateAnim();
return tailGroup;
},
handleResize () {
const container = document.querySelector('#pixi-box');
if (!app || !container) return;
const w = container.clientWidth || 300;
const h = container.clientHeight || 300;
app.renderer.resize(w, h);
activeTagInstances.forEach((tag) => {
const meta = tag.userData;
if (!meta) return;
let newX = w / 2 + meta.radius * Math.cos(meta.angle);
let newY = h / 2 + meta.radius * Math.sin(meta.angle);
const safeW = tag.width / 2 + 10;
const safeH = tag.height / 2 + 10;
meta.originalX = clamp(newX, safeW, w - safeW);
meta.originalY = clamp(newY, safeH, h - safeH);
meta.safeH = safeH; // 更新安全高度
tag.x = meta.originalX;
});
},
}
}
</script> </script>
<style scoped> <style scoped>
.container { .container {
width: 100%; width: 100%;
height: 500rpx; height: 500rpx;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
color: #b9d3ff; color: #b9d3ff;
} }
</style> </style>

File diff suppressed because it is too large Load Diff

View File

@@ -1,59 +1,54 @@
<template> <template>
<view class="app-custom-root"> <view class="app-custom-root">
<view class="app-container"> <view class="container">
<!-- 主体内容区域 --> <!-- 主体内容区域 -->
<view class="container-main"> <view class="container-main">
<swiper <swiper class="swiper" :disable-touch="disableTouch" :current="state.current" @change="changeSwiperType">
class="swiper" <!-- 绑定首页和尾页 -->
:disable-touch="disableTouch" <swiper-item
:current="state.current" @touchstart.passive="handleTouchStart"
@change="changeSwiperType" @touchmove.passive="handleTouchMove"
> @touchend="disableTouch = false"
<!-- 绑定首页和尾页 --> class="swiper-item"
<swiper-item v-for="(_, index) in 2"
@touchstart.passive="handleTouchStart" :key="index"
@touchmove.passive="handleTouchMove" >
@touchend="disableTouch = false" <!-- #ifndef MP-WEIXIN -->
class="swiper-item" <component
v-for="(_, index) in 2" :is="components[index]"
:key="index" @onShowTabbar="changeShowTabbar"
> :ref="(el) => handelComponentsRef(el, index)"
<!-- #ifndef MP-WEIXIN --> />
<component <!-- #endif -->
:is="components[index]" <!-- #ifdef MP-WEIXIN -->
@onShowTabbar="changeShowTabbar" <IndexOne
:ref="(el) => handelComponentsRef(el, index)" v-show="currentIndex === 0"
/> @onShowTabbar="changeShowTabbar"
<!-- #endif --> :ref="(el) => handelComponentsRef(el, index)"
<!-- #ifdef MP-WEIXIN --> />
<IndexOne <IndexTwo
v-show="currentIndex === 0" v-show="currentIndex === 1"
@onShowTabbar="changeShowTabbar" @onShowTabbar="changeShowTabbar"
:ref="(el) => handelComponentsRef(el, index)" :ref="(el) => handelComponentsRef(el, index)"
/> />
<IndexTwo <!-- #endif -->
v-show="currentIndex === 1" </swiper-item>
@onShowTabbar="changeShowTabbar" </swiper>
:ref="(el) => handelComponentsRef(el, index)" </view>
/>
<!-- #endif -->
</swiper-item>
</swiper>
</view>
<!-- <Tabbar v-show="showTabbar" :currentpage="0"></Tabbar> --> <!-- <Tabbar v-show="showTabbar" :currentpage="0"></Tabbar> -->
<!-- maskFristEntry --> <!-- maskFristEntry -->
<view class="maskFristEntry" v-if="maskFristEntry"> <view class="maskFristEntry" v-if="maskFristEntry">
<view class="entry-content"> <view class="entry-content">
<text class="text1">左滑查看视频</text> <text class="text1">左滑查看视频</text>
<text class="text2">快去体验吧</text> <text class="text2">快去体验吧</text>
<view class="goExperience" @click="goExperience">去体验</view> <view class="goExperience" @click="goExperience">去体验</view>
<view class="maskFristEntry-Close" @click="closeFristEntry"></view> <view class="maskFristEntry-Close" @click="closeFristEntry"></view>
</view>
</view>
</view> </view>
</view>
</view> </view>
</view>
</template> </template>
<script setup> <script setup>
@@ -79,134 +74,134 @@ const totalPage = 2;
const THRESHOLD = 5; const THRESHOLD = 5;
onLoad(() => { onLoad(() => {
// 判断浏览器是否有 fristEntry 第一次进入 // 判断浏览器是否有 fristEntry 第一次进入
let fristEntry = uni.getStorageSync('fristEntry') === false ? false : true; // 默认未读 let fristEntry = uni.getStorageSync('fristEntry') === false ? false : true; // 默认未读
maskFristEntry.value = fristEntry; maskFristEntry.value = fristEntry;
if (fristEntry) { if (fristEntry) {
uni.hideTabBar(); uni.hideTabBar();
} }
// 预加载较重页面 // 预加载较重页面
setTimeout(() => { setTimeout(() => {
uni.preloadPage({ url: '/packageA/pages/post/post' }); uni.preloadPage({ url: '/packageA/pages/post/post' });
uni.preloadPage({ url: '/pages/nearby/nearby' }); uni.preloadPage({ url: '/pages/nearby/nearby' });
uni.preloadPage({ url: '/pages/chat/chat' }); uni.preloadPage({ url: '/pages/chat/chat' });
uni.preloadPage({ url: '/packageA/pages/choiceness/choiceness' }); uni.preloadPage({ url: '/packageA/pages/choiceness/choiceness' });
uni.preloadPage({ url: '/packageA/pages/reservation/reservation' }); uni.preloadPage({ url: '/packageA/pages/reservation/reservation' });
uni.preloadPage({ url: '/packageA/pages/Intendedposition/Intendedposition' }); uni.preloadPage({ url: '/packageA/pages/Intendedposition/Intendedposition' });
}, 1000); }, 1000);
}); });
onShow(() => { onShow(() => {
// 获取消息列表 // 获取消息列表
// useReadMsg().fetchMessages(); // useReadMsg().fetchMessages();
}); });
const state = reactive({ const state = reactive({
current: 0, current: 0,
all: [{}], all: [{}],
}); });
onMounted(() => { onMounted(() => {
handleTabChange(state.current); handleTabChange(state.current);
}); });
const handelComponentsRef = (el, index) => { const handelComponentsRef = (el, index) => {
if (el) { if (el) {
swiperRefs[index].value = el; swiperRefs[index].value = el;
} }
}; };
function handleTouchStart(e) { function handleTouchStart(e) {
startPointX.value = e.touches[0].clientX; startPointX.value = e.touches[0].clientX;
disableTouch.value = false; disableTouch.value = false;
} }
function handleTouchMove(e) { function handleTouchMove(e) {
const currentX = e.touches[0].clientX; const currentX = e.touches[0].clientX;
const diffX = currentX - startPointX.value; const diffX = currentX - startPointX.value;
if (state.current === 0) { if (state.current === 0) {
if (diffX > THRESHOLD) { if (diffX > THRESHOLD) {
disableTouch.value = true; disableTouch.value = true;
} else { } else {
disableTouch.value = false; disableTouch.value = false;
}
return;
} }
if (state.current === totalPage - 1) { return;
if (diffX < -THRESHOLD) { }
disableTouch.value = true; if (state.current === totalPage - 1) {
} else { if (diffX < -THRESHOLD) {
disableTouch.value = false; disableTouch.value = true;
} } else {
return; disableTouch.value = false;
} }
return;
}
disableTouch.value = false; disableTouch.value = false;
} }
function changeShowTabbar(val) { function changeShowTabbar(val) {
showTabbar.value = val; showTabbar.value = val;
} }
//1 查看消息类型 //1 查看消息类型
function changeSwiperType(e) { function changeSwiperType(e) {
const newIndex = e.detail.current; const newIndex = e.detail.current;
const lastIndex = state.current; const lastIndex = state.current;
const isSwipingRight = newIndex < lastIndex; const isSwipingRight = newIndex < lastIndex;
const isSwipingLeft = newIndex > lastIndex; const isSwipingLeft = newIndex > lastIndex;
if (lastIndex === 0 && isSwipingRight) { if (lastIndex === 0 && isSwipingRight) {
disableTouch.value = true; disableTouch.value = true;
state.current = 0; state.current = 0;
setTimeout(() => { setTimeout(() => {
disableTouch.value = false; disableTouch.value = false;
}, 50); }, 50);
return; return;
} }
if (lastIndex === totalPage - 1 && isSwipingLeft) { if (lastIndex === totalPage - 1 && isSwipingLeft) {
disableTouch.value = true; disableTouch.value = true;
state.current = lastIndex; state.current = lastIndex;
setTimeout(() => { setTimeout(() => {
disableTouch.value = false; disableTouch.value = false;
}, 50); }, 50);
return; return;
} }
const index = e.detail.current; const index = e.detail.current;
state.current = index; state.current = index;
handleTabChange(index); handleTabChange(index);
disableTouch.value = false; disableTouch.value = false;
} }
function changeType(index) { function changeType(index) {
state.current = index; state.current = index;
handleTabChange(index); handleTabChange(index);
} }
function handleTabChange(index) { function handleTabChange(index) {
if (!loadedMap[index]) { if (!loadedMap[index]) {
swiperRefs[index].value?.loadData(); swiperRefs[index].value?.loadData();
loadedMap[index] = true; loadedMap[index] = true;
} }
} }
function changeSwiperMsgType(e) { function changeSwiperMsgType(e) {
const currented = e.detail.current; const currented = e.detail.current;
state.current = currented; state.current = currented;
} }
// mask // mask
function closeFristEntry() { function closeFristEntry() {
uni.setStorageSync('fristEntry', false); uni.setStorageSync('fristEntry', false);
maskFristEntry.value = false; maskFristEntry.value = false;
uni.showTabBar(); uni.showTabBar();
} }
function goExperience() { function goExperience() {
closeFristEntry(); closeFristEntry();
uni.showTabBar(); uni.showTabBar();
state.current = 1; state.current = 1;
} }
</script> </script>
@@ -218,7 +213,7 @@ function goExperience() {
height: calc(100% - var(--window-bottom)); height: calc(100% - var(--window-bottom));
overflow: hidden; overflow: hidden;
} }
.app-container { .container {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;

View File

@@ -110,9 +110,9 @@
</tabcontrolVue> </tabcontrolVue>
<SelectJobs ref="selectJobsModel"></SelectJobs> <SelectJobs ref="selectJobsModel"></SelectJobs>
<!-- 后门 --> <!-- 后门 -->
<!-- <view class="backdoor" @click="loginbackdoor"> <view class="backdoor" @click="loginbackdoor">
<uni-icons type="gift-filled" size="30"></uni-icons> <uni-icons type="gift-filled" size="30"></uni-icons>
</view> --> </view>
</AppLayout> </AppLayout>
</template> </template>
@@ -315,7 +315,7 @@ function complete() {
.backdoor{ .backdoor{
position: fixed; position: fixed;
left: 24rpx; left: 24rpx;
top: 10rpx; top: 100rpx;
} }
.input-nx .input-nx
position: relative position: relative

View File

@@ -180,16 +180,14 @@ function changeSwiperMsgType(e) {
height: 100%; height: 100%;
width: 100%; width: 100%;
.container-header { .container-header {
height: calc(88rpx - 14rpx);
text-align: center;
line-height: calc(88rpx - 14rpx);
font-size: 32rpx;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
padding: 16rpx 44rpx 36rpx 44rpx; padding: 16rpx 44rpx 36rpx 44rpx;
background: url('@/static/icon/msgTopbg.png') 0 0 no-repeat; background: url('@/static/icon/msgTopbg.png') 0 0 no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
box-sizing: border-box;
padding-top: calc(var(--window-top) + var(--status-bar-height) + 20rpx);
.header-title { .header-title {
color: #000000; color: #000000;
font-weight: bold; font-weight: bold;

View File

@@ -81,8 +81,10 @@ export function createRequest(url, data = {}, method = 'GET', loading = false, h
mask: true mask: true
}) })
} }
console.log(url,'____')
let header = { let header = {
...headers ...headers,
'X-Target-URI': encodeURI(url)
}; };
const userStore = useUserStore(); const userStore = useUserStore();
const token = userStore.token; const token = userStore.token;
@@ -117,7 +119,8 @@ export function createRequest(url, data = {}, method = 'GET', loading = false, h
// ------------------------------------------------------------------ // ------------------------------------------------------------------
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
uni.request({ uni.request({
url: config.baseUrl + url, url: config.baseUrl + '/app/proxy',
// url: config.baseUrl + url,
method: method, method: method,
data: requestData, data: requestData,
header, header,