From b31fcd34c79a5ecfd697863ad637caf2361cfb02 Mon Sep 17 00:00:00 2001
From: shirlwang <15254118591@163.com>
Date: Thu, 6 Nov 2025 12:16:28 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=92=8C=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
packageRc/components/ImageUpload.vue | 144 ++++++++-
packageRc/pages/daiban/addbangfu.vue | 29 +-
packageRc/pages/daiban/bangfuList.vue | 2 +-
packageRc/pages/daiban/daiban.vue | 6 +-
packageRc/pages/daiban/daibandetail.vue | 173 ++++++-----
.../components/entrepreneurshipService.vue | 108 +++++--
.../pages/needs/components/jobService.vue | 55 ++--
.../pages/needs/components/otherService.vue | 48 ++-
.../pages/needs/components/trainService.vue | 71 +++--
packageRc/pages/needs/dealDone.vue | 287 ++++++++++++++++++
packageRc/pages/needs/needsList.vue | 252 +++++++++------
packageRc/pages/personalList/personalList.vue | 8 +-
.../pages/service/serviceTraceability.vue | 285 +++++++++++++++++
pages.json | 7 +-
pages/index/components/index-one.vue | 3 +-
utilsRc/request.js | 2 +-
16 files changed, 1192 insertions(+), 288 deletions(-)
create mode 100644 packageRc/pages/needs/dealDone.vue
create mode 100644 packageRc/pages/service/serviceTraceability.vue
diff --git a/packageRc/components/ImageUpload.vue b/packageRc/components/ImageUpload.vue
index 3b4a6fc..262d326 100644
--- a/packageRc/components/ImageUpload.vue
+++ b/packageRc/components/ImageUpload.vue
@@ -1,9 +1,10 @@
-
-
+ + 上传文件
+
+ {{ item.file.name }}
+ 删除
+
@@ -11,7 +12,9 @@
// import {
// uploadImg
// } from '@/api/company'
- import config from '@/config'
+ // import config from '@/config'
+import config from '@/utilsRc/config.js'
+import { getToken } from "@/utilsRc/auth";
//import {
// getToken
//} from '@/utils/auth'
@@ -23,7 +26,7 @@
},
allowedFormats: {
type: Array,
- default: () => [], // 允许的文件格式
+ default: () => ['.png', '.jpg', '.jpeg', '.doc', '.docx', '.pdf', '.xls', '.xlsx'], // 允许的文件格式
},
maxImageSize: {
type: Object,
@@ -74,6 +77,106 @@
},
},
methods: {
+ deleteFile(index){
+ this.internalFileList.splice(index, 1);
+ },
+ chooseAndUploadFile() {
+ wx.chooseMessageFile({
+ count: this.maxCount,
+ extension: this.allowedFormats,
+ // ['.png', '.jpg', '.jpeg', '.doc', '.docx', '.pdf', '.xls', '.xlsx' ],
+ success: (res) => {
+ console.log('选择文件成功:', res);
+ if(this.maxCount - this.internalFileList.length < res.tempFiles.length){
+ uni.showToast({
+ title: '最多只能上传' + this.maxCount + '个文件',
+ icon: 'none'
+ });
+ return;
+ }
+
+ let path = "";
+ const twoMBInBytes = 2 * 1024 * 1024; // 2MB转换为字节数
+ res.tempFiles.forEach((file) => {
+
+ if (file.size > twoMBInBytes) {
+ uni.showToast({
+ title: "图片大小不能超过2MB",
+ icon: "none",
+ });
+ return;
+ }
+ if (res.tempFiles && res.tempFiles.length > 0) {
+ path = file.path;
+ if (this.allowedFormats.indexOf('.'+path.split(".")[1])!=-1) {
+ uni.showLoading();
+ const tempFilePath = file;
+ uni.uploadFile({
+ url: config.baseUrl+'/system/oss/upload', //图片上传地址
+ filePath: tempFilePath.path,
+ name: 'file',
+ formData: {},
+ header: {
+ // 'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJQSlUyVlJCc1E1aXRMMWgxdjNkcVh2eER1c2VVc0hvRiIsInVzZXJJZCI6MX0.z4Z2XqgXyU0GQU-i7Bsa5T-zCKApTxj1YQ73rk7bAVo'
+ 'Authorization': 'Bearer ' + getToken(),
+ },
+ success: (res) => {
+ var data = JSON.parse(res.data);
+ console.log(data, 'sdfjiosdjfoi')
+ if(data.code==200) {
+ this.internalFileList.push({
+ url: data.data.url,
+ file: file
+ })
+ this.$emit('update', this.internalFileList);
+ // this.serviceForm.fileUrl = this.internalFileList.map(item => item.url).join(',')
+ this.$forceUpdate()
+ uni.hideLoading();
+ } else {
+ uni.hideLoading();
+ uni.showToast({
+ title: res.msg || '上传失败',
+ icon: 'none',
+ duration: 2000
+ });
+ }
+ },
+ fail: (error) => {
+ uni.showToast({
+ title: '上传失败',
+ icon: 'none'
+ });
+ console.error(error);
+ }
+ })
+ } else {
+ uni.showToast({
+ icon: "none",
+ duration: 1500,
+ title: `只能选择${this.allowedFormats.join('、')}格式文件`,
+ });
+ }
+ }
+ })
+
+
+
+ // // 添加新选择的图片到列表
+ // res.tempFiles.forEach((item, index) => {
+ // this.fileList.push({
+ // url: item.path,
+ // file: res.tempFiles[index]
+ // });
+ // });
+ // 更新 serviceForm.fileUrl
+ // this.updateFileUrls();
+ },
+ fail: (err) => {
+ console.error('选择图片失败:', err);
+ }
+ });
+
+ },
// 新增图片
async handleAfterRead(event) {
let lists = [].concat(event.file);
@@ -141,11 +244,25 @@
};
-
diff --git a/packageRc/pages/daiban/addbangfu.vue b/packageRc/pages/daiban/addbangfu.vue
index 12ab9c9..70d4320 100644
--- a/packageRc/pages/daiban/addbangfu.vue
+++ b/packageRc/pages/daiban/addbangfu.vue
@@ -67,13 +67,7 @@
:localdata="jingbrList1"
@change="handleAgentChange"
>
-
-
+
@@ -190,10 +184,10 @@
+
+
\ No newline at end of file
diff --git a/packageRc/pages/needs/needsList.vue b/packageRc/pages/needs/needsList.vue
index 8760146..90309c5 100644
--- a/packageRc/pages/needs/needsList.vue
+++ b/packageRc/pages/needs/needsList.vue
@@ -3,7 +3,7 @@
-
+
共 {{ total }} 条
-
{{ getDictLabel(item.currentStatus, currentStatusList) }}
-
+
需求工种:{{ item.jobWorkTypeName }}
-
+
需求名称:{{ item.serviceRequirementTitle }}
+ v-if="queryParams.demandType == 2||queryParams.demandType == 4||queryParams.demandType == 5">
需求名称:{{ item.demandTitle }}
-
+
推荐
@@ -73,7 +73,7 @@
:customStyle="{border: 'none'}" @click="requirementHandling(item)">办理
-
+
培训
@@ -103,30 +103,35 @@
-
-
-
- {{ formData.actualSolveDate||'请选择' }}
-
-
+
+
@@ -135,7 +140,7 @@
@cancel="showTime=false"> -->
-
+ > -->
@@ -180,10 +185,12 @@
delOtherService,
finishOtherService
} from '@/apiRc/needs/otherService'
+ import DealDone from './dealDone.vue'
export default {
components: {
PopupList,
- ImageUpload
+ ImageUpload,
+ DealDone,
},
data() {
return {
@@ -194,7 +201,7 @@
queryParams: {
pageNum: 1,
pageSize: 10,
- needsType: 1
+ demandType: 1
},
total: 0,
showMorePage: true,
@@ -227,19 +234,23 @@
onLoad({
dictValue
}) {
- this.queryParams.needsType = dictValue || 1
+ this.queryParams.demandType = dictValue || 1
this.getCheckData()
},
onShow() {
this.search();
},
methods: {
+ // 日期选择变化处理
+ onDateChange(e) {
+ this.formData.actualSolveDate = e.detail.value;
+ },
closeopenDeal() {
this.$refs.openDeal.close()
},
// 新增需求
goAddNeeds() {
- this.$tab.navigateTo(`/pages/needs/needDetail?activeType=${this.queryParams.needsType}&showTab=1`)
+ uni.navigateTo(`/packageRc/pages/needs/needDetail?activeType=${this.queryParams.demandType}&showTab=1`)
},
confirmDate(e) {
@@ -255,36 +266,36 @@
// 需求推荐/培训
requirementTraining(item, index) {
if (index == 1) {
- uni.navigateTo(
- `/pages/services/serviceDetail?personName=${item.personName}&personId=${item.personId}&jobDemandInfoId=${item.id}&jobWorkType=${item.jobWorkType}&type=3&showTab=1`
- )
+ uni.navigateTo({
+ url: `/packageRc/pages/service/serviceDetail?personName=${item.personName}&personId=${item.personId}&jobDemandInfoId=${item.id}&jobWorkType=${item.jobWorkType}&type=3&showTab=1`
+ })
} else {
- uni.navigateTo(
- `/pages/services/serviceDetail?personName=${item.personName}&personId=${item.personId}&skillTrainingId=${item.id}&personStatus=${item.personStatus}&type=4&showTab=1`
- )
+ uni.navigateTo({
+ url: `/packageRc/pages/service/serviceDetail?personName=${item.personName}&personId=${item.personId}&skillTrainingId=${item.id}&personStatus=${item.personStatus}&type=4&showTab=1`
+ })
}
},
clickDelete(item) {
this.loading = true;
- if (this.queryParams.needsType == 1) {
+ if (this.queryParams.demandType == 1) {
delJobService(item.id).then((res) => {
this.deleteFinish(res)
});
- } else if (this.queryParams.needsType == 2) {
+ } else if (this.queryParams.demandType == 2) {
delAssistService(item.id).then((res) => {
this.deleteFinish(res)
});
- } else if (this.queryParams.needsType == 3) {
+ } else if (this.queryParams.demandType == 3) {
delEntrepreneurshipService(item.id).then((res) => {
this.deleteFinish(res)
});
- } else if (this.queryParams.needsType == 4) {
+ } else if (this.queryParams.demandType == 4) {
delTrainService(item.id).then((res) => {
this.deleteFinish(res)
});
- } else if (this.queryParams.needsType == 5) {
+ } else if (this.queryParams.demandType == 5) {
delOtherService(item.id).then((res) => {
this.deleteFinish(res)
});
@@ -298,7 +309,7 @@
},
goNeedsDetail(item) {
uni.navigateTo({
- url: `/pages/needs/needDetail?id=${item.id}&type=${this.queryParams.needsType}&showTab=1`
+ url: `/packageRc/pages/needs/needDetail?id=${item.id}&type=${this.queryParams.demandType}&showTab=1`
})
},
getDictLabel(value, list) {
@@ -321,12 +332,12 @@
console.log(res.data)
})
this.checkData = [
- // {
- // name: "需求类型",
- // type: "needsType",
- // data: [{dictLabel: '求职需求', dictValue: '1'},{dictLabel: '援助需求', dictValue: '2'},{dictLabel: '创业需求', dictValue: '3'},{dictLabel: '培训需求', dictValue: '4'},{dictLabel: '其他需求', dictValue: '5'}],
- // activeIndex: 0,
- // },
+ {
+ name: "需求类型",
+ type: "demandType",
+ data: [{dictLabel: '求职需求', dictValue: '1'},{dictLabel: '创业需求', dictValue: '3'},{dictLabel: '培训需求', dictValue: '4'},{dictLabel: '其他需求', dictValue: '5'}],
+ activeIndex: 0,
+ },
{
name: "需求状态",
type: "currentStatus",
@@ -375,9 +386,9 @@
5: 'other' // 其他需求
};
// 获取当前的需求类型字符串
- const demandType = demandTypeMap[this.queryParams.needsType] || 'other';
+ const demandType = demandTypeMap[this.queryParams.demandType] || 'other';
+ uni.navigateTo({url: `/packageRc/pages/service/serviceTraceability?id=${item.id}&demandType=${demandType}`});
// 使用映射后的字符串构建URL并导航
- this.$tab.navigateTo(`/pages/services/serviceTraceability?id=${item.id}&demandType=${demandType}`);
},
// 触底加载
getBottomList() {
@@ -403,27 +414,27 @@
// 获取列表
async getList() {
this.loading = true;
- if (this.queryParams.needsType == 1) {
+ // if (this.queryParams.demandType == 1) {
listJobService(this.queryParams).then((res) => {
this.gettedData(res)
});
- } else if (this.queryParams.needsType == 2) {
- listAssistService(this.queryParams).then((res) => {
- this.gettedData(res)
- });
- } else if (this.queryParams.needsType == 3) {
- listEntrepreneurshipService(this.queryParams).then((res) => {
- this.gettedData(res)
- });
- } else if (this.queryParams.needsType == 4) {
- listTrainService(this.queryParams).then((res) => {
- this.gettedData(res)
- });
- } else if (this.queryParams.needsType == 5) {
- listOtherService(this.queryParams).then((res) => {
- this.gettedData(res)
- });
- }
+ // } else if (this.queryParams.demandType == 2) {
+ // listAssistService(this.queryParams).then((res) => {
+ // this.gettedData(res)
+ // });
+ // } else if (this.queryParams.demandType == 3) {
+ // listEntrepreneurshipService(this.queryParams).then((res) => {
+ // this.gettedData(res)
+ // });
+ // } else if (this.queryParams.demandType == 4) {
+ // listTrainService(this.queryParams).then((res) => {
+ // this.gettedData(res)
+ // });
+ // } else if (this.queryParams.demandType == 5) {
+ // listOtherService(this.queryParams).then((res) => {
+ // this.gettedData(res)
+ // });
+ // }
},
gettedData(res) {
if (res.code == 200) {
@@ -444,11 +455,19 @@
// 需求办结
requirementHandling(item) {
- this.$refs.openDeal.open()
- this.formData = {
+ // this.$refs.openDeal.open()
+ // this.formData = {
+ // id: item.id,
+ // currentStatus: '3'
+ // }
+ console.log(item, 'asdfjoiasiodfjoi')
+
+ this.$refs.dealDone.init({
id: item.id,
- currentStatus: '3'
- }
+ currentStatus: "3",
+ userId: item.userId,
+ // personStatus: item.personStatus || (this.dict.personStatusList[0] && this.dict.personStatusList[0].dictValue),
+ });
},
// 需求推荐
@@ -460,6 +479,7 @@
// 办结按钮
async finishJobRecommend() {
+ uni.showLoading();
try {
// 检查必填项
if (!this.formData.actualSolveDate) {
@@ -468,9 +488,7 @@
if (!this.formData.solveDesc) {
throw new Error('解决说明不能为空');
}
- // 显示全局加载
- this.$showLoading();
- // 根据 queryParams.needsType 获取对应的 URL
+ // 根据 queryParams.demandType 获取对应的 URL
const obj = {
1: '/demand/personJobDemandInfo/JdJobDemandDone',
2: '/demand/personAssistDemandInfo/assistDone',
@@ -479,7 +497,7 @@
5: '/demand/personOtherDemandInfo/otherDemandDone',
};
- const url = obj[this.queryParams.needsType];
+ const url = '/manage/personDemand/demandDone';//obj[this.queryParams.demandType];
if (!url) {
throw new Error('无效的需求类型');
}
@@ -491,18 +509,17 @@
// 检查响应码是否为200
if (code === 200) {
// 显示成功的提示信息
- this.$u.toast(msg);
+ uni.showToast({title: msg, icon: 'none'});
// this.openDeal = false;
- this.$refs.openDeal.close()
+ this.$refs.openDeal.close()
this.search();
}
} catch (error) {
// 处理错误并显示提示信息
- this.$u.toast('请检查必填项填写');
- console.error('完成需求时发生错误:', error);
+ uni.showToast({title: '请检查必填项填写', icon: 'none'});
} finally {
// 确保加载页总是会被隐藏
- this.$hideLoading();
+ uni.hideLoading();
}
},
// async finishJobRecommend() {
@@ -514,21 +531,22 @@
// 4: '/demand/personTrainDemandInfo/JdTrainDemandDone',
// 5: '/demand/personOtherDemandInfo/otherDemandDone',
// }
- // if (!this.formData.actualSolveDate) return this.$u.toast('解决时间不能为空');
- // if (!this.formData.solveDesc) return this.$u.toast('解决说明不能为空');
+ // if (!this.formData.actualSolveDate) return uni.showToast({title: '解决时间不能为空', icon: 'none'});
+ // if (!this.formData.solveDesc) return uni.showToast({title: '解决说明不能为空', icon: 'none'});
// const {
// code,
// data,
// msg
- // } = await requirementCompletion(obj[this.queryParams.needsType], this.formData)
+ // } = await requirementCompletion(obj[this.queryParams.demandType], this.formData)
// if (code == 200) {
- // this.$u.toast(msg)
+ // uni.showToast({title: ms, icon: 'none'}g)
// this.openDeal = false
// this.search()
// }
// },
changeFile(e) {
+ console.log(e, 34234234234234)
// 清空当前的 fileUrl 数组
this.formData.fileUrl = [];
// 如果 e 有长度(即用户选择了文件)
@@ -539,7 +557,7 @@
this.formData.fileUrl.push(url);
}
}
- this.formData.fileUrl = this.$arrayToString(this.formData.fileUrl)
+ this.formData.fileUrl = this.formData.fileUrl.join(',');
},
}
}
@@ -569,11 +587,15 @@
.search-icon {
width: 40rpx;
+ height: 40rpx;
}
}
.job-item {
position: relative;
+ margin-bottom: 24rpx;
+ background: #fff;
+ border-radius: 16rpx;
.item_btn{
height: 100rpx;
border-top: 1px solid #e3e8ee;
@@ -616,8 +638,6 @@
}
.top-container {
- background: #fff;
- border-radius: 16rpx;
padding: 32rpx;
// margin-bottom: 24rpx;
@@ -774,10 +794,54 @@
width: 100%;
}
}
- .d_flex{
+
+ .df_flex{
display: flex;
view{
flex-grow: 1;
+ text-align: center;
+ color: #4c6efb;
}
- }
+}
+.df_flex_1{
+ flex: 1;
+}
+.df__direction_column {
+ flex-direction: column;
+}
+.df_align_center{
+ align-items: center;
+}
+.df_justify_center{
+ justify-content: center;
+}
+.df_content_between{
+ justify-content: space-between;
+}
+.df_shrink_0{
+ flex-shrink: 0;
+}
+
+/* 日期选择器样式 */
+.date-picker-wrapper {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ width: 100%;
+ box-sizing: border-box;
+ padding: 0 24rpx;
+ height: 64rpx;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ background-color: #fff;
+}
+
+// .date-picker-wrapper.noValue {
+// background-color: #f9f9f9;
+// }
+
+.date-value {
+ color: #333;
+ width: 100%
+}
diff --git a/packageRc/pages/personalList/personalList.vue b/packageRc/pages/personalList/personalList.vue
index 16bf2e8..4c4ba2d 100644
--- a/packageRc/pages/personalList/personalList.vue
+++ b/packageRc/pages/personalList/personalList.vue
@@ -41,9 +41,9 @@
+ style="position: relative; color: #000;display: flex;align-items: center;justify-content: space-between;">
- 共{{ total }}条信息
+ 共{{ total }}条信息
@@ -143,7 +143,7 @@
-
+
取消
@@ -258,7 +258,7 @@
-
+
diff --git a/packageRc/pages/service/serviceTraceability.vue b/packageRc/pages/service/serviceTraceability.vue
new file mode 100644
index 0000000..3e00548
--- /dev/null
+++ b/packageRc/pages/service/serviceTraceability.vue
@@ -0,0 +1,285 @@
+
+
+
+
+
+
+
+ 经办人:
+ {{ job.agentUserName || '-' }}
+
+
+ 经办时间:
+ {{ job.practicalSolutionTime }}
+
+
+ 经办部门:
+ {{ job.agentDeptName }}
+
+
+ 说明:
+ {{ job.blqksm || '--'}}
+
+
+
+
+
+
+
+
+
+
diff --git a/pages.json b/pages.json
index 2023d0b..bff1c0c 100644
--- a/pages.json
+++ b/pages.json
@@ -384,7 +384,7 @@
{
"path": "pages/personalList/personalList",
"style": {
- "navigationBarTitleText": "添加帮扶"
+ "navigationBarTitleText": "毕业生追踪"
}
},
{
@@ -414,6 +414,11 @@
"style": {
"navigationBarTitleText": "服务"
}
+ } , {
+ "path": "pages/service/serviceTraceability",
+ "style": {
+ "navigationBarTitleText": "服务追溯"
+ }
} , {
"path": "pages/needs/needDetail",
"style": {
diff --git a/pages/index/components/index-one.vue b/pages/index/components/index-one.vue
index 28212ea..a7304c0 100644
--- a/pages/index/components/index-one.vue
+++ b/pages/index/components/index-one.vue
@@ -1039,13 +1039,12 @@ import { getToken } from '@/utilsRc/auth.js';
function goRc(){
if (checkLogin()) {
let token = getToken();
- if( token != null ){
+ if( token != null && token != '' && token != undefined ){
if(storeRc.state.user.type == 'person'){
navTo('/packageRc/pages/index/index');
}else{
navTo('/packageRc/pages/daiban/daiban');
}
- console.log(storeRc.state.user.roles, storeRc.state.user.type, 'state')
}else{
let userInfo = uni.getStorageSync('userInfo')
storeRc.dispatch('LoginByUserInfo', userInfo).then(res => {
diff --git a/utilsRc/request.js b/utilsRc/request.js
index 89b1861..346431d 100644
--- a/utilsRc/request.js
+++ b/utilsRc/request.js
@@ -20,7 +20,7 @@ const request = config => {
if (getToken() && !isToken) {
config.header['Authorization'] = 'Bearer ' + getToken()
}
- config.header['Authorization'] = 'Bearer ' + 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJQSlUyVlJCc1E1aXRMMWgxdjNkcVh2eER1c2VVc0hvRiIsInVzZXJJZCI6MX0.z4Z2XqgXyU0GQU-i7Bsa5T-zCKApTxj1YQ73rk7bAVo'
+ config.header['Authorization'] = 'Bearer ' + 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJGUVl3YmRUalAzQ1BMNGFVc0RxeGJmdjAyT3JMZllDVSIsInVzZXJJZCI6MX0.kSOXY2QJQPbfjE0Yx2R3S8yQciA33OZBS9xJtr7cQ1A'
// get请求映射params参数
if (config.params) {
let url = config.url + '?' + tansParams(config.params)