Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 60b4d2bef0 | |||
| 3c8176f84e | |||
| cb1052346e | |||
|
|
2b1a87b65e |
2
App.vue
2
App.vue
@@ -190,4 +190,4 @@ uni-modal,
|
|||||||
body {
|
body {
|
||||||
font-family: 'PingFangSC-Regular', 'PingFang SC', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
font-family: 'PingFangSC-Regular', 'PingFang SC', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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',
|
||||||
// 语音转文字
|
// 语音转文字
|
||||||
|
|||||||
@@ -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
|
||||||
// }
|
// }
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
8
main.js
8
main.js
@@ -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
763
package-lock.json
generated
Normal 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
6
package.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"pixi.js": "^7.4.2",
|
||||||
|
"sm-crypto": "^0.3.13"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -5,9 +5,7 @@
|
|||||||
"path": "pages/index/index",
|
"path": "pages/index/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "青岛智慧就业平台",
|
"navigationBarTitleText": "青岛智慧就业平台",
|
||||||
// #ifdef H5
|
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
// #endif
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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
@@ -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%;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user