diff --git a/apiRc/personinfo/index.js b/apiRc/personinfo/index.js index 2aa1a9b..c4fb610 100644 --- a/apiRc/personinfo/index.js +++ b/apiRc/personinfo/index.js @@ -44,6 +44,13 @@ export function returnPerson(params) { method: 'get', 'url': `/personnel/personBaseInfo/returnPerson`, + params + }) +} +export function getStatistic(params) { + return request({ + method: 'get', + 'url': `/pc/index/fwqkfx`, params }) } \ No newline at end of file diff --git a/packageB/train/mockExam/examList.vue b/packageB/train/mockExam/examList.vue index fa2ad83..19b9bf2 100644 --- a/packageB/train/mockExam/examList.vue +++ b/packageB/train/mockExam/examList.vue @@ -26,38 +26,103 @@ - + - 2025年注册会计师证 - 未开始 + {{item.name}} + 已完成 + 未开始 + + 进行中 + + 已过期 - 立即练习 + 开始考试 + 继续考试 - 考试时长:120分钟 - 题目数量:88题 - 及格分数:60分 - 截止日期:2025-12-31 + 考试时长:{{item.timeLimit}}分钟 + 题目数量:{{item.totalQuestions}}题 + 分类: + + {{ val.dictLabel }} + + + 成绩: + {{ item.gradeUser.score }}分 + -- + + 开始时间:{{item.startDate}} + 截止时间:{{item.dueDate}} - 查看成绩 - 详情 - 收藏 + 查看成绩 + 详情 + + + 收藏 + + + + 取消 + - - - - + + {{examInfo.name}} × + + 已完成 + 未开始 + + 进行中 + + 已过期 + 初级 + 中级 + 高级 + + 考试简介 + {{ examInfo.description }} + + + {{ examInfo.timeLimit }} + 考试时长 + (分钟) + + + + {{ examInfo.totalQuestions }} + 题目总数 + + + + {{ examInfo.passScore }} + 及格分数 + + + + {{ examInfo.totalScore }} + 总分 + + + 考试要求 + 考试过程中请勿刷新页面或关闭浏览器 + 请在规定时间内完成所有题目 + 考试开始后不可暂停,请确保网络连接稳定 + 考试结束后可查看成绩和答案解析 + + + 开始考试 + 继续考试 + @@ -66,22 +131,138 @@ + + \ No newline at end of file diff --git a/packageB/train/practice/startPracticing.vue b/packageB/train/practice/startPracticing.vue index c91adb4..921ad75 100644 --- a/packageB/train/practice/startPracticing.vue +++ b/packageB/train/practice/startPracticing.vue @@ -68,7 +68,7 @@ 下一题 - 提交答案 + 提交答案 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/daiban/daibandetail.vue b/packageRc/pages/daiban/daibandetail.vue index d425c23..bf193fd 100644 --- a/packageRc/pages/daiban/daibandetail.vue +++ b/packageRc/pages/daiban/daibandetail.vue @@ -22,7 +22,7 @@ - {{ form?.name || '' }} + {{ form.name || '' }} 男 女 @@ -413,8 +413,8 @@ > --> - - + - + + + + + + {{ getpersonStatusLabel(formData.personStatus) || "请选择" }} + + @@ -495,28 +496,31 @@ " >重置 - 办结 - + --> diff --git a/packageRc/pages/jobList/jobList.vue b/packageRc/pages/jobList/jobList.vue new file mode 100644 index 0000000..6703ff2 --- /dev/null +++ b/packageRc/pages/jobList/jobList.vue @@ -0,0 +1,2030 @@ + + + + + + + + + + + + + + + + + + + + + {{ companyInfo.name || "企业名称" }} + + {{ companyInfo.industry || "互联网" }} + · + {{ companyInfo.scale || "100-999人" }} + + + + + + + + + + 职位名称、薪资要求等 + + + + + + + + + + + + + + + + + 全部 + + + {{ item }} + + + + + + 添加 + + + + + + {{ item.text }} + + + + 筛选 + + + + + + + + + + + + + + + + + + + + {{ job.jobTitle }} + + + + + + + + + + {{ config.appInfo.areaName }} + + + + + + + + {{ job.postingDate || "发布日期" }} + + + + + + {{ vacanciesTo(job.vacancies) }} + + + + + + + {{ job.companyName }} + + + + + + + + + 在找「{{ job.jobCategory }}」工作吗? + {{ job.tip }} + + + 不是 + 是的 + + + + + + + + + + + + + + + + + + + + {{ job.jobTitle }} + + + + + + + + + + {{ config.appInfo.areaName }} + + + + + + + + {{ job.postingDate || "发布日期" }} + + + + + + {{ vacanciesTo(job.vacancies) }} + + + + + + + {{ job.companyName }} + + + + + + + + + 在找「{{ job.jobCategory }}」工作吗? + {{ job.tip }} + + + 不是 + 是的 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packageRc/pages/needs/components/entrepreneurshipService.vue b/packageRc/pages/needs/components/entrepreneurshipService.vue index 6edde00..4b6118a 100644 --- a/packageRc/pages/needs/components/entrepreneurshipService.vue +++ b/packageRc/pages/needs/components/entrepreneurshipService.vue @@ -1,7 +1,7 @@ @@ -13,12 +13,12 @@ color="#A6A6A6"> - + - {{ formData.personName || '请选择' }} @@ -36,16 +36,16 @@ 否 --> - 是 - 否 @@ -54,26 +54,43 @@ - - - - 是 否 - + --> + + + + 是 + + + + 否 + + {{ formData.ywcypxxq }} + @@ -83,13 +100,30 @@ - + + + + + 是 + + + + 否 + + {{ formData.ywzjxq }} + - + @@ -10,23 +10,20 @@ 求职需求信息 编辑 + style="font-weight: normal;display: flex;" @click="edit=true">编辑 - + - - + + {{ formData.personName || '请选择' }} - {{ formData.personName || '请选择' }} - {{ formData.jobWorkTypeName || '请选择工种' }} - @@ -48,24 +44,22 @@ - - - - + class="ellipsis_1 input-area" @focus="$refs.placePicker.openDialog()"/> - @@ -691,6 +685,25 @@ cursor: not-allowed; } +.input-area{ + padding: 0 24rpx; + height: 64rpx; + display: flex; + align-items: center; + border: 1px solid #e4e4e4; + border-radius: 8rpx; + box-sizing: border-box; + // &input{ + + // } +} +textarea{ + box-sizing: border-box; + border: 1px solid #e4e4e4; + border-radius: 8rpx; + font-size: 26rpx; + padding: 12rpx; +} @@ -699,12 +712,14 @@ display: flex; align-items: center; justify-content: space-between; - width: 100%; - padding: 28rpx 36rpx; + // width: 100%; + padding: 0 24rpx; + height: 64rpx; + display: flex; + align-items: center; background: #ffffff; border: 2rpx solid #e5e5e5; border-radius: 12rpx; - min-height: 88rpx; box-sizing: border-box; transition: all 0.3s ease; } diff --git a/packageRc/pages/needs/components/otherService.vue b/packageRc/pages/needs/components/otherService.vue index f3a5142..4486542 100644 --- a/packageRc/pages/needs/components/otherService.vue +++ b/packageRc/pages/needs/components/otherService.vue @@ -1,7 +1,7 @@ @@ -14,11 +14,11 @@ color="#A6A6A6"> - + - {{ formData.personName || '请选择' }} @@ -26,7 +26,7 @@ - + @@ -338,6 +338,44 @@ color: rgb(192, 196, 204); } +.input-area{ + padding: 0 24rpx; + height: 64rpx; + display: flex; + align-items: center; + border: 1px solid #e4e4e4; + border-radius: 8rpx; + box-sizing: border-box; + // &input{ + + // } +} +textarea{ + box-sizing: border-box; + border: 1px solid #e4e4e4; + border-radius: 8rpx; + font-size: 26rpx; + padding: 12rpx; +} + + + + +.picker-view { + display: flex; + align-items: center; + justify-content: space-between; + // width: 100%; + padding: 0 24rpx; + height: 64rpx; + display: flex; + align-items: center; + background: #ffffff; + border: 2rpx solid #e5e5e5; + border-radius: 12rpx; + box-sizing: border-box; + transition: all 0.3s ease; +} .disabledLine { background: rgb(245, 247, 250); cursor: not-allowed; diff --git a/packageRc/pages/needs/components/trainService.vue b/packageRc/pages/needs/components/trainService.vue index b8b1277..3caead4 100644 --- a/packageRc/pages/needs/components/trainService.vue +++ b/packageRc/pages/needs/components/trainService.vue @@ -1,7 +1,7 @@ @@ -14,11 +14,11 @@ color="#A6A6A6"> - + - {{ formData.personName || '请选择' }} @@ -62,7 +62,7 @@ - + @@ -568,33 +568,42 @@ border-radius: 4px; } - .picker-view { - display: flex; - align-items: center; - justify-content: space-between; - width: 100%; - padding: 28rpx 36rpx; - background: #ffffff; - border: 2rpx solid #e5e5e5; - border-radius: 12rpx; - min-height: 88rpx; - box-sizing: border-box; - transition: all 0.3s ease; - } +.input-area{ + padding: 0 24rpx; + height: 64rpx; + display: flex; + align-items: center; + border: 1px solid #e4e4e4; + border-radius: 8rpx; + box-sizing: border-box; + // &input{ + + // } +} +textarea{ + box-sizing: border-box; + border: 1px solid #e4e4e4; + border-radius: 8rpx; + font-size: 26rpx; + padding: 12rpx; +} - .picker-view:active { - background: #f8f9fa; - border-color: #007aff; - } - .picker-view text { - color: #333333; - font-size: 28rpx; - flex: 1; - } - .picker-view .u-icon { - margin-left: 16rpx; - color: #999999; - } + +.picker-view { + display: flex; + align-items: center; + justify-content: space-between; + // width: 100%; + padding: 0 24rpx; + height: 64rpx; + display: flex; + align-items: center; + background: #ffffff; + border: 2rpx solid #e5e5e5; + border-radius: 12rpx; + box-sizing: border-box; + transition: all 0.3s ease; +} diff --git a/packageRc/pages/needs/dealDone.vue b/packageRc/pages/needs/dealDone.vue new file mode 100644 index 0000000..1c925c5 --- /dev/null +++ b/packageRc/pages/needs/dealDone.vue @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + {{ getpersonStatusLabel(formData.personStatus) || "请选择" }} + + + + + + + + + + + + + + + 取消 + 重置 + 办结 + + + + + + + \ No newline at end of file diff --git a/packageRc/pages/needs/needsList.vue b/packageRc/pages/needs/needsList.vue index 667356e..90309c5 100644 --- a/packageRc/pages/needs/needsList.vue +++ b/packageRc/pages/needs/needsList.vue @@ -1,16 +1,9 @@ - - - - - 需求列表 - - - + + style="padding: 24rpx 32rpx 0;max-height: unset;"> - + 共 {{ total }} 条 - - - + + @@ -39,24 +32,24 @@ :class="item.currentStatus == 1 ? 'not' : item.currentStatus == 2 ? 'ing' : item.currentStatus == 3 ? 'finish' : '' "> {{ getDictLabel(item.currentStatus, currentStatusList) }} - + 需求工种:{{ item.jobWorkTypeName }} - + 需求名称:{{ item.serviceRequirementTitle }} + v-if="queryParams.demandType == 2||queryParams.demandType == 4||queryParams.demandType == 5"> 需求名称:{{ item.demandTitle }} - + 服务追溯 - - + + @click="requirementTraining(item, 1)">推荐 - + 办理 - - + + @click="requirementTraining(item, 4)">培训 - + 办理 - + 办理 - - + + @@ -110,30 +103,35 @@ - - - - {{ formData.actualSolveDate||'请选择' }} - - + + @@ -142,7 +140,7 @@ @cancel="showTime=false"> --> - + > --> @@ -159,7 +157,7 @@ + + diff --git a/pages.json b/pages.json index ae2075a..f25ccd9 100644 --- a/pages.json +++ b/pages.json @@ -359,10 +359,17 @@ { "path": "train/mockExam/examList", "style": { - "navigationBarTitleText": "模拟考试", + "navigationBarTitleText": "考试列表", "navigationBarTitleTextSize": "30rpx" } }, + { + "path": "train/mockExam/startExam", + "style": { + "navigationBarTitleText": "模拟考试", + "navigationBarTitleTextSize": "30rpx" + } + }, { "path": "train/mockExam/viewGrades", "style": { @@ -398,7 +405,13 @@ { "path": "pages/personalList/personalList", "style": { - "navigationBarTitleText": "添加帮扶" + "navigationBarTitleText": "毕业生追踪" + } + }, + { + "path": "pages/jobList/jobList", + "style": { + "navigationBarTitleText": "岗位列表" } }, { @@ -428,10 +441,15 @@ "style": { "navigationBarTitleText": "服务" } + } , { + "path": "pages/service/serviceTraceability", + "style": { + "navigationBarTitleText": "服务追溯" + } } , { "path": "pages/needs/needDetail", "style": { - "navigationBarTitleText": "需求" + "navigationBarTitleText": "需求信息" } } , { "path": "pages/daiban/bangfuList", @@ -443,6 +461,11 @@ "style": { "navigationBarTitleText": "需求上报" } + } , { + "path": "pages/needs/needsList", + "style": { + "navigationBarTitleText": "需求" + } } ] }, diff --git a/pages/index/components/index-one.vue b/pages/index/components/index-one.vue index fd86a5c..bbb7683 100644 --- a/pages/index/components/index-one.vue +++ b/pages/index/components/index-one.vue @@ -1047,14 +1047,14 @@ import { getToken } from '@/utilsRc/auth.js'; // 跳转到高校毕业页面 function goRc(){ if (checkLogin()) { + navTo('/packageRc/pages/index/index'); 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/unpackage/dist/dev/mp-weixin/project.config.json b/unpackage/dist/dev/mp-weixin/project.config.json index d63cc50..259a170 100644 --- a/unpackage/dist/dev/mp-weixin/project.config.json +++ b/unpackage/dist/dev/mp-weixin/project.config.json @@ -1,8 +1,7 @@ { "description": "项目配置文件。", "packOptions": { - "ignore": [], - "include": [] + "ignore": [] }, "setting": { "urlCheck": false, @@ -10,21 +9,28 @@ "postcss": true, "minified": true, "newFeature": true, - "bigPackageSizeSupport": true, - "babelSetting": { - "ignore": [], - "disablePlugins": [], - "outputPath": "" - }, - "condition": false + "bigPackageSizeSupport": true }, "compileType": "miniprogram", - "libVersion": "3.10.3", + "libVersion": "3.5.7", "appid": "wx9d1cbc11c8c40ba7", "projectname": "qingdao-employment-service", - "condition": {}, - "editorSetting": { - "tabIndent": "insertSpaces", - "tabSize": 2 + "condition": { + "search": { + "current": -1, + "list": [] + }, + "conversation": { + "current": -1, + "list": [] + }, + "game": { + "current": -1, + "list": [] + }, + "miniprogram": { + "current": -1, + "list": [] + } } } \ No newline at end of file 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)