From 0172f4762878c7ed70386b2d6bdc727686cb408f Mon Sep 17 00:00:00 2001
From: Apcallover <1503963513@qq.com>
Date: Wed, 26 Nov 2025 21:11:12 +0800
Subject: [PATCH] =?UTF-8?q?flat:=20=E4=BD=93=E9=AA=8C=E4=BC=98=E5=8C=96?=
=?UTF-8?q?=EF=BC=8Cswiper=E4=BC=98=E5=8C=96,=E6=B7=BB=E5=8A=A0uploadfile?=
=?UTF-8?q?=20=20=20Class=E6=96=B9=E6=B3=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
config.js | 5 +-
index.html | 4 +-
main.js | 1 +
packageA/pages/collection/collection.vue | 87 +++-
packageA/pages/exhibitors/exhibitors.vue | 48 ++-
packageA/pages/myResume/myResume.vue | 407 ++++++++----------
packageA/pages/post/component/videoPlayer.vue | 6 +-
pages/chat/components/ai-paging.vue | 2 +-
pages/index/index.vue | 76 +++-
pages/mine/mine.vue | 12 +-
pages/msglog/msglog.vue | 81 +++-
pages/nearby/nearby.vue | 82 +++-
utils/FileUploader.js | 150 +++++++
13 files changed, 698 insertions(+), 263 deletions(-)
create mode 100644 utils/FileUploader.js
diff --git a/config.js b/config.js
index 6b16e54..74e3c87 100644
--- a/config.js
+++ b/config.js
@@ -2,10 +2,7 @@ export default {
// baseUrl: 'https://fw.rc.qingdao.gov.cn/rgpp-api/api', // 内网
baseUrl: 'https://qd.zhaopinzao8dian.com/api', // 测试
// baseUrl: 'http://192.168.3.29:8081',
- // sseAI+
- // StreamBaseURl: 'http://39.98.44.136:8000',
- StreamBaseURl: 'https://qd.zhaopinzao8dian.com/ai',
- // StreamBaseURl: 'https://qd.zhaopinzao8dian.com/ai/test',
+ // baseUrl: 'http://10.213.6.207:19010/api',
// 语音转文字
// vioceBaseURl: 'ws://39.98.44.136:8080/speech-recognition',
vioceBaseURl: 'wss://qd.zhaopinzao8dian.com/api/speech-recognition',
diff --git a/index.html b/index.html
index 2e04e64..4214cd6 100644
--- a/index.html
+++ b/index.html
@@ -18,10 +18,10 @@
-
+
diff --git a/main.js b/main.js
index 5255af7..671b533 100644
--- a/main.js
+++ b/main.js
@@ -20,6 +20,7 @@ import renderCompanyCollectionRecord from '@/components/renderCompanyCollectionR
import renderJobViewRecord from '@/components/renderJobViewRecord/renderJobViewRecord.vue';
// import Tabbar from '@/components/tabbar/midell-box.vue'
// 自动导入 directives 目录下所有指令
+console.log(lightAppJssdk)
const directives = import.meta.glob('./directives/*.js', {
eager: true
});
diff --git a/packageA/pages/collection/collection.vue b/packageA/pages/collection/collection.vue
index d1204c9..d181d7b 100644
--- a/packageA/pages/collection/collection.vue
+++ b/packageA/pages/collection/collection.vue
@@ -11,21 +11,31 @@
公司企业
-
-
+
+
-
-
+ :latitude="latitudeVal"
+ >
-
+
{
getJobList();
getCompanyList();
});
+function handleTouchStart(e) {
+ // 确保有触摸点
+ if (e.touches.length > 0) {
+ startPointX.value = e.touches[0].clientX;
+ disableTouch.value = false;
+ }
+}
+
+function handleTouchMove(e) {
+ if (e.touches.length === 0) return;
+
+ const currentX = e.touches[0].clientX;
+ const diffX = currentX - startPointX.value;
+
+ if (type.value === 0) {
+ if (diffX > THRESHOLD) {
+ disableTouch.value = true;
+ } else {
+ disableTouch.value = false;
+ }
+ return;
+ }
+
+ if (type.value === totalPage - 1) {
+ if (diffX < -THRESHOLD) {
+ disableTouch.value = true;
+ } else {
+ disableTouch.value = false;
+ }
+ return;
+ }
+ disableTouch.value = false;
+}
+
function changeSwiperType(e) {
+ const newIndex = e.detail.current;
+ const lastIndex = type.value;
+
+ const isSwipingRight = newIndex < lastIndex;
+ const isSwipingLeft = newIndex > lastIndex;
+
+ if (lastIndex === 0 && isSwipingRight) {
+ disableTouch.value = true;
+ type.value = 0;
+ setTimeout(() => {
+ disableTouch.value = false;
+ }, 50);
+ return;
+ }
+
+ if (lastIndex === totalPage - 1 && isSwipingLeft) {
+ disableTouch.value = true;
+ type.value = lastIndex;
+
+ setTimeout(() => {
+ disableTouch.value = false;
+ }, 50);
+ return;
+ }
+
const current = e.detail.current;
type.value = current;
+ disableTouch.value = false;
}
function changeType(e) {
diff --git a/packageA/pages/exhibitors/exhibitors.vue b/packageA/pages/exhibitors/exhibitors.vue
index 171d0eb..a4b7827 100644
--- a/packageA/pages/exhibitors/exhibitors.vue
+++ b/packageA/pages/exhibitors/exhibitors.vue
@@ -11,9 +11,9 @@
- {{ fairInfo?.zphmc }}
+ {{ fairInfo?.zphmc }}
- {{ fairInfo.jbf }}
+ {{ fairInfo.jbf }}
@@ -122,23 +124,23 @@ const pageState = reactive({
const hasnext = ref(true);
const zphId = ref('');
-const pageOptions = ref({})
+const pageOptions = ref({});
onLoad((options) => {
- zphId.value = options.jobFairId
- pageOptions.value = options
+ zphId.value = options.jobFairId;
+ pageOptions.value = options;
getJobFairInfo(options.jobFairId, options.jobFairName);
getCompanyList('refresh');
});
-function getJobFairInfo(id,name) {
+function getJobFairInfo(id, name) {
$api.createRequest(`/app/internal/jobFairThirdPart/${id}`).then((resData) => {
fairInfo.value = resData.data;
hasAppointment();
});
}
-function getCompanyList(type='add') {
- const { jobFairId,jobFairName} = pageOptions.value
+function getCompanyList(type = 'add') {
+ const { jobFairId, jobFairName } = pageOptions.value;
if (type === 'refresh') {
pageState.current = 1;
pageState.maxPage = 1;
@@ -150,24 +152,26 @@ function getCompanyList(type='add') {
current: pageState.current,
pageSize: pageState.pageSize,
};
- $api.createRequest(`/app/internal/companyThirdPart/?zphID=${jobFairId}&zphmc=${jobFairName}`,params ).then((resData) => {
- const { rows, total } = resData;
- if (type === 'add') {
- const str = pageState.pageSize * (pageState.current - 1);
- const end = pageState.list.length;
- const reslist = rows;
- pageState.list.splice(str, end, ...reslist);
- } else {
- pageState.list = rows;
+ $api.createRequest(`/app/internal/companyThirdPart/?zphID=${jobFairId}&zphmc=${jobFairName}`, params).then(
+ (resData) => {
+ const { rows, total } = resData;
+ if (type === 'add') {
+ const str = pageState.pageSize * (pageState.current - 1);
+ const end = pageState.list.length;
+ const reslist = rows;
+ pageState.list.splice(str, end, ...reslist);
+ } else {
+ pageState.list = rows;
+ }
+ pageState.total = resData.total;
+ pageState.maxPage = Math.ceil(pageState.total / pageState.pageSize);
}
- pageState.total = resData.total;
- pageState.maxPage = Math.ceil(pageState.total / pageState.pageSize);
- });
+ );
}
const hasAppointment = () => {
const isTimePassed = (timeStr) => {
- if(!timeStr) return false
+ if (!timeStr) return false;
const targetTime = new Date(timeStr.replace(/-/g, '/')).getTime(); // 兼容格式
const now = Date.now();
return now < targetTime;
diff --git a/packageA/pages/myResume/myResume.vue b/packageA/pages/myResume/myResume.vue
index 78e47e4..4ee9721 100644
--- a/packageA/pages/myResume/myResume.vue
+++ b/packageA/pages/myResume/myResume.vue
@@ -1,241 +1,212 @@
-
-
-
-
-
-
-
-
-
- {{userInfo.resumeOcrStatus}}
-
-
-
-
-
-
-
-
-
- {{ userInfo.name || "编辑用户名" }}
-
-
-
+
+
+
+
-
-
- {{ userInfo.age }}岁
-
-
-
- {{ userInfo.phone }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 求职期望
-
-
-
- 期望薪资:
- {{ userInfo.salaryMin / 1000 }}k-{{
- userInfo.salaryMax / 1000
- }}k
-
-
- 期望工作地:
- 青岛市-
-
-
-
-
- {{ title }}
-
-
-
-
-
-
-
- 工作经历
-
-
- 添加
-
-
-
-
- {{ item.company }}
-
-
-
- {{ item.position }}
- {{ item.startTime }}--{{ item.endTime || "至今" }}
-
-
- {{ item.duty }}
-
-
-
-
-
-
-
-
+
+
+ {{ userInfo.resumeOcrStatus }}
+
+
+
+
+
+
+
+
+
+ {{ userInfo.name || '编辑用户名' }}
+
+
+
+
+
+
+ {{ userInfo.age }}岁
+
+
+
+ {{ userInfo.phone }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 求职期望
+
+
+
+ 期望薪资:
+ {{ userInfo.salaryMin / 1000 }}k-{{ userInfo.salaryMax / 1000 }}k
+
+
+ 期望工作地:
+ 青岛市-
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+ 工作经历
+
+
+ 添加
+
+
+
+
+ {{ item.company }}
+
+
+
+ {{ item.position }}
+ {{ item.startTime }}--{{ item.endTime || '至今' }}
+
+
+ {{ item.duty }}
+
+
+
+
+
+
+
+
+
@@ -286,7 +257,7 @@ function uploadResume(tempFilePath, loading) {
.close
width:25rpx;
height:25rpx;
-
+
.notice-line.blue{
background: #E8F1FF
color: #1677ff
diff --git a/packageA/pages/post/component/videoPlayer.vue b/packageA/pages/post/component/videoPlayer.vue
index d118dba..17af6d1 100644
--- a/packageA/pages/post/component/videoPlayer.vue
+++ b/packageA/pages/post/component/videoPlayer.vue
@@ -9,8 +9,8 @@
width: isFullScreen ? '100%' : videoWidth + 'rpx',
height: isFullScreen ? '100vh' : videoHeight + 'rpx',
}"
- @touchstart="handleTouchStart"
- @touchmove="handleTouchMove"
+ @touchstart.passive="handleTouchStart"
+ @touchmove.passive="handleTouchMove"
@touchend="handleTouchEnd"
@touchmove.stop.prevent
>
@@ -187,4 +187,4 @@ defineExpose({ open });
background: rgba(255, 255, 255, 0.2);
border-radius: 4rpx;
}
-
\ No newline at end of file
+
diff --git a/pages/chat/components/ai-paging.vue b/pages/chat/components/ai-paging.vue
index 42699bc..0dc6d79 100644
--- a/pages/chat/components/ai-paging.vue
+++ b/pages/chat/components/ai-paging.vue
@@ -148,7 +148,7 @@
-
-
+
+
+
{
// 判断浏览器是否有 fristEntry 第一次进入
let fristEntry = uni.getStorageSync('fristEntry') === false ? false : true; // 默认未读
@@ -85,15 +103,69 @@ const handelComponentsRef = (el, index) => {
}
};
+function handleTouchStart(e) {
+ startPointX.value = e.touches[0].clientX;
+ disableTouch.value = false;
+}
+function handleTouchMove(e) {
+ const currentX = e.touches[0].clientX;
+ const diffX = currentX - startPointX.value;
+
+ if (state.current === 0) {
+ if (diffX > THRESHOLD) {
+ disableTouch.value = true;
+ } else {
+ disableTouch.value = false;
+ }
+ return;
+ }
+ if (state.current === totalPage - 1) {
+ if (diffX < -THRESHOLD) {
+ disableTouch.value = true;
+ } else {
+ disableTouch.value = false;
+ }
+ return;
+ }
+
+ disableTouch.value = false;
+}
+
function changeShowTabbar(val) {
showTabbar.value = val;
}
//1 查看消息类型
function changeSwiperType(e) {
+ const newIndex = e.detail.current;
+ const lastIndex = state.current;
+
+ const isSwipingRight = newIndex < lastIndex;
+ const isSwipingLeft = newIndex > lastIndex;
+
+ if (lastIndex === 0 && isSwipingRight) {
+ disableTouch.value = true;
+ state.current = 0;
+ setTimeout(() => {
+ disableTouch.value = false;
+ }, 50);
+ return;
+ }
+
+ if (lastIndex === totalPage - 1 && isSwipingLeft) {
+ disableTouch.value = true;
+ state.current = lastIndex;
+
+ setTimeout(() => {
+ disableTouch.value = false;
+ }, 50);
+ return;
+ }
+
const index = e.detail.current;
state.current = index;
handleTabChange(index);
+ disableTouch.value = false;
}
function changeType(index) {
state.current = index;
diff --git a/pages/mine/mine.vue b/pages/mine/mine.vue
index ca342f7..71f5645 100644
--- a/pages/mine/mine.vue
+++ b/pages/mine/mine.vue
@@ -49,7 +49,7 @@
服务专区
-
+
实名认证
@@ -106,6 +106,7 @@ import { reactive, inject, watch, ref, onMounted } from 'vue';
import { storeToRefs } from 'pinia';
import Tabbar from '@/components/tabbar/midell-box.vue';
import { onLoad, onShow } from '@dcloudio/uni-app';
+import FileUploader from '@/utils/FileUploader.js';
const { $api, navTo } = inject('globalFunction');
import useUserStore from '@/stores/useUserStore';
const popup = ref(null);
@@ -133,6 +134,15 @@ function getUserstatistics() {
counts.value = resData.data;
});
}
+
+function selectFile() {
+ // FileUploader.showMenuAndUpload({
+ // success: function (res) {
+ // alert('上传成功: ' + JSON.stringify(res));
+ // },
+ // });
+}
+function chooseFileUploadTest(pam) {}