parent d8849108
...@@ -4,7 +4,7 @@ import instance from "@/utils/request"; ...@@ -4,7 +4,7 @@ import instance from "@/utils/request";
export const testLogin = params => instance.post("/user/smsLogin", params); export const testLogin = params => instance.post("/user/smsLogin", params);
export const getSmsCode = params => instance.postForm("/user/getSmsCode", params); export const getSmsCode = params => instance.postForm("/user/getSmsCode", params);
// 新华登录 // 新华登录
export const xinhuaMpLogin = params => instance.post("/user/appUser/xinhua/mpLogin", params); export const xinhuaMpLogin = params => instance.post("/user/xinhua/mpLogin", params);
// 获取用户简历 // 获取用户简历
export const getUserResumeApi = () => instance.post("/user/resume/info"); export const getUserResumeApi = () => instance.post("/user/resume/info");
// 获取等用户信息 // 获取等用户信息
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<div class="message-list"> <div class="message-list">
<scroll-view :scroll-y="true" @scrolltolower="getList"> <scroll-view :scroll-y="true" @scrolltolower="getList">
<view class="system"> <view class="system">
<view class="item flex-between" v-for="(v, i) in list" :key="i" @tap="toDetail(v.id)"> <view class="item flex-between" v-for="(v, i) in list" :key="i" @tap="toDetail(v)">
<img src="@/static/image/user/default-avatar.png" alt="" /> <img src="@/static/image/user/default-avatar.png" alt="" />
<view class="content"> <view class="content">
<view class="name-date flex-between"> <view class="name-date flex-between">
...@@ -64,10 +64,16 @@ const getList = () => { ...@@ -64,10 +64,16 @@ const getList = () => {
}); });
}; };
const toDetail = id => { const toDetail = data => {
uni.navigateTo({ if (data.type == 1) {
url: `/pages/user/feedbackDetails/index?id=${id}` uni.navigateTo({
}); url: `/pages/user/deliveryFeedback/index?id=${data.targetId}`
});
} else {
uni.navigateTo({
url: `/pages/user/feedbackDetails/index?id=${data.targetId}`
});
}
}; };
onReachBottom(() => { onReachBottom(() => {
pageNo++; pageNo++;
......
...@@ -100,13 +100,19 @@ ...@@ -100,13 +100,19 @@
<view class="right"> <view class="right">
<view class="title">{{active===0?'薪酬要求':selectionTitle}}</view> <view class="title">{{active===0?'薪酬要求':selectionTitle}}</view>
<view v-if="active===0" class="list"> <view v-if="active===0" class="list">
<view class="item" :class="{'light-two':activeTwo===index}" v-for="(item,index) in salary" :key="index" @tap="choiceDetails(item,index)">{{item.text}}</view> <view class="item" :class="{'light-two':activeOne===index}" v-for="(item,index) in salary" :key="index" @tap="choiceDetails(item,index)">{{item.text}}</view>
</view> </view>
<view v-if="active!==0 && active!==4" class="list"> <view v-if="active===1" class="list">
<view class="item" :class="{'light-two':activeTwo===index}" v-for="(item,index) in dataList" :key="item.code" @tap="choiceDetails(item,index)">{{item.text}}</view> <view class="item" :class="{'light-two':activeTwo===index}" v-for="(item,index) in dataList" :key="item.code" @tap="choiceDetails(item,index)">{{item.text}}</view>
</view> </view>
<view v-if="active==2" class="list">
<view class="item" :class="{'light-two':activeThree===index}" v-for="(item,index) in dataList" :key="item.code" @tap="choiceDetails(item,index)">{{item.text}}</view>
</view>
<view v-if="active==3" class="list">
<view class="item" :class="{'light-two':activeFour===index}" v-for="(item,index) in dataList" :key="item.code" @tap="choiceDetails(item,index)">{{item.text}}</view>
</view>
<view v-if="active===4" class="list"> <view v-if="active===4" class="list">
<view class="item" :class="{'light-two':activeTwo===index}" v-for="(item,index) in dataList" :key="item.id" @tap="choiceDetails(item,index)">{{item.name}}</view> <view class="item" :class="{'light-two':activeFive===index}" v-for="(item,index) in dataList" :key="item.id" @tap="choiceDetails(item,index)">{{item.name}}</view>
</view> </view>
</view> </view>
</view> </view>
...@@ -168,7 +174,11 @@ let contentHeight = ref(null); ...@@ -168,7 +174,11 @@ let contentHeight = ref(null);
let showDoubt = ref(false); let showDoubt = ref(false);
let showInvalid = ref(false); let showInvalid = ref(false);
let active = ref(0); let active = ref(0);
let activeOne = ref(-1);
let activeTwo = ref(-1); let activeTwo = ref(-1);
let activeThree = ref(-1);
let activeFour = ref(-1);
let activeFive = ref(-1);
let salary = ref([{text:'不限',min:null,max:null},{text:'3k以下',min:0,max:3000},{text:'3-5k',min:3000,max:5000},{text:'5-10k',min:5000,max:10000},{text:'10-20k',min:10000,max:20000},{text:'20-50k',min:20000,max:50000},{text:'50k以上',min:50000,max:100000}]) let salary = ref([{text:'不限',min:null,max:null},{text:'3k以下',min:0,max:3000},{text:'3-5k',min:3000,max:5000},{text:'5-10k',min:5000,max:10000},{text:'10-20k',min:10000,max:20000},{text:'20-50k',min:20000,max:50000},{text:'50k以上',min:50000,max:100000}])
onShow(() => { onShow(() => {
...@@ -413,28 +423,34 @@ const choice = (index) => { ...@@ -413,28 +423,34 @@ const choice = (index) => {
} }
} }
const choiceDetails = (data, index) => { const choiceDetails = (data, index) => {
activeTwo.value = index*1
pageNo = 1; pageNo = 1;
positionListData.value = []; positionListData.value = [];
switch (active.value) { switch (active.value) {
case 0: case 0:
activeOne.value = index*1
minSalary = data.min; minSalary = data.min;
maxSalary = data.max; maxSalary = data.max;
getListData(); getListData();
break; break;
case 1: case 1:
activeTwo.value = index * 1
educationRequirement = data.code; educationRequirement = data.code;
if(data.code == '0') educationRequirement = null
getListData(); getListData();
break; break;
case 2: case 2:
activeThree.value = index*1
accommodation = data.code; accommodation = data.code;
getListData(); getListData();
break; break;
case 3: case 3:
activeFour.value = index*1
identityRequirement = data.code; identityRequirement = data.code;
if(data.code == '0') identityRequirement = null
getListData(); getListData();
break; break;
default: default:
activeFive.value = index*1
jobTypePid = data.id; jobTypePid = data.id;
getListData(); getListData();
} }
......
...@@ -67,10 +67,11 @@ ...@@ -67,10 +67,11 @@
<view class="pos-int"> <view class="pos-int">
<text class="pos-label" v-for="(item, index) in partTimeJobData.benefits" :key="index">{{ item }}</text> <text class="pos-label" v-for="(item, index) in partTimeJobData.benefits" :key="index">{{ item }}</text>
</view> </view>
<view class="pos-duty" :class="{ activeClass: dutyFlag }">{{ partTimeJobData.positionDesc }}</view> <!-- <view class="pos-duty" :class="{ activeClass: dutyFlag }">{{ partTimeJobData.positionDesc }}</view> -->
<view class="duty-more" @tap="moreClick" v-if="partTimeJobData.jobDesc?.length > 150 && dutyFlag === false"> <rich-text class="pos-duty" :nodes="partTimeJobData.positionDesc"></rich-text>
<!-- <view class="duty-more" @tap="moreClick" v-if="partTimeJobData.positionDesc?.length > 125 && dutyFlag === false">
<text>查看全部</text> <text>查看全部</text>
</view> </view> -->
</view> </view>
<!-- 公司信息 --> <!-- 公司信息 -->
<view class="cos-info margin-top24"> <view class="cos-info margin-top24">
...@@ -216,6 +217,7 @@ const markers = reactive([ ...@@ -216,6 +217,7 @@ const markers = reactive([
const getJobDetail = id => { const getJobDetail = id => {
getJobDetailApi(id).then(async ({ data }) => { getJobDetailApi(id).then(async ({ data }) => {
data.id = id; data.id = id;
data.position.positionDesc = data.position.positionDesc.replace(/\n/g, '<br>')
partTimeJobData.value = data.position; partTimeJobData.value = data.position;
partTimeJobData.value.companyInfo = data.companyInfo; partTimeJobData.value.companyInfo = data.companyInfo;
partTimeJobData.value.application = data.application; partTimeJobData.value.application = data.application;
...@@ -786,8 +788,8 @@ onLoad(({ id }) => { ...@@ -786,8 +788,8 @@ onLoad(({ id }) => {
color: #1b2026; color: #1b2026;
letter-spacing: 0; letter-spacing: 0;
word-break: break-all; word-break: break-all;
-webkit-line-clamp: 5; // -webkit-line-clamp: 5;
-webkit-box-orient: vertical; // -webkit-box-orient: vertical;
} }
} }
.cos-info { .cos-info {
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
</view> </view>
</view> </view>
<view class="tip" v-if="!id">上传图片(可上传0-3张图片)</view> <view class="tip" v-if="!id">上传图片(可上传0-3张图片)</view>
<view class="msg"> <view class="msg" v-if="id">
<view class="title">平台回复</view> <view class="title">平台回复</view>
<view class="hf">{{ detail.replyMessage || "暂无回复" }}</view> <view class="hf">{{ detail.replyMessage || "暂无回复" }}</view>
</view> </view>
...@@ -54,8 +54,10 @@ const params = reactive({ ...@@ -54,8 +54,10 @@ const params = reactive({
imagesPath: "" imagesPath: ""
}); });
onLoad(option => { onLoad(option => {
id.value = option.id; if (option.id) {
feedbackByIdFn(option.id); id.value = option.id;
feedbackByIdFn(option.id);
}
}); });
const feedbackByIdFn = id => { const feedbackByIdFn = id => {
feedbackById(id).then(feedback => { feedbackById(id).then(feedback => {
......
...@@ -4,14 +4,14 @@ ...@@ -4,14 +4,14 @@
<view class="label">学校名称</view> <view class="label">学校名称</view>
<input <input
v-model="params.schoolName" v-model="params.schoolName"
placeholder-style="font-size: 24rpx;" placeholder-style="font-size: 24rpx;color: #77818f;"
placeholder="请输入用户名" placeholder="请输入学校名称"
border="{{ false }}" border="{{ false }}"
/> />
</view> </view>
<view class="item"> <view class="item">
<view class="label">专业名称</view> <view class="label">专业名称</view>
<input v-model="params.major" placeholder-style="font-size: 24rpx;" placeholder="请输入用户名" border="{{ false }}" /> <input v-model="params.major" placeholder-style="font-size: 24rpx;color: #77818f;" placeholder="请输入专业名称" border="{{ false }}" />
</view> </view>
<view class="item"> <view class="item">
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
class="my-datetime-picker" class="my-datetime-picker"
> >
<view :class="`inner ${params.endDate ? '' : 'placeholder'}`"> <view :class="`inner ${params.endDate ? '' : 'placeholder'}`">
{{ format(params.endDate) || "结束时间" }} {{ format(params.endDate) || "选择结束时间" }}
</view> </view>
</wd-datetime-picker> </wd-datetime-picker>
</view> </view>
......
...@@ -80,7 +80,26 @@ ...@@ -80,7 +80,26 @@
</wd-checkbox-group> </wd-checkbox-group>
</view> </view>
<!-- 户籍地* --> <!-- 户籍地* -->
<wd-col-picker custom-class="col-picker" label="户籍地" v-model="value" :columns="area" :column-change="columnChange" @confirm="handleConfirm"></wd-col-picker> <view class="my-info-list flex-between">
<view class="my-info-title label">
<text>户籍地</text>
</view>
<wd-col-picker
v-model="value"
:columns="area"
:column-change="columnChange"
@confirm="handleConfirm"
use-default-slot
style="flex: 1"
>
<div style="flex: 1" class="flex-between">
<view :class="['my-info-form', !provinceCityDistrict ? 'placeholder-style' : '']">
{{ provinceCityDistrict ? provinceCityDistrict : "选择户籍地" }}</view
>
<view class="arrow"></view>
</div>
</wd-col-picker>
</view>
<!-- 户籍详细地址 --> <!-- 户籍详细地址 -->
<view class="my-info-list flex-column"> <view class="my-info-list flex-column">
<view class="my-info-title label"> <view class="my-info-title label">
...@@ -94,7 +113,26 @@ ...@@ -94,7 +113,26 @@
/> />
</view> </view>
<!-- 常驻地* --> <!-- 常驻地* -->
<wd-col-picker custom-class="col-picker" label="常驻地" v-model="value2" :columns="area" :column-change="columnChange" @confirm="handleConfirm2"></wd-col-picker> <view class="my-info-list flex-between">
<view class="my-info-title label">
<text>常驻地</text>
</view>
<wd-col-picker
v-model="value2"
:columns="area"
:column-change="columnChange2"
@confirm="handleConfirm2"
use-default-slot
style="flex: 1"
>
<div style="flex: 1" class="flex-between">
<view :class="['my-info-form', !provinceCityDistrict2 ? 'placeholder-style' : '']">
{{ provinceCityDistrict2 ? provinceCityDistrict2 : "选择常住地" }}</view
>
<view class="arrow"></view>
</div>
</wd-col-picker>
</view>
<!-- 常驻详细地址 --> <!-- 常驻详细地址 -->
<view class="my-info-list flex-column"> <view class="my-info-list flex-column">
<view class="my-info-title label"> <view class="my-info-title label">
...@@ -332,8 +370,33 @@ onMounted(() => { ...@@ -332,8 +370,33 @@ onMounted(() => {
getData(); getData();
}); });
const columnChange = ({ selectedItem, resolve, finish }) => { // 户籍地
const areaData = findChildrenByCode(colPickerData, selectedItem.value) const provinceCityDistrict = ref("")
const provinceCityDistrictArray = []
const columnChange = ({ selectedItem, index, resolve, finish }) => {
provinceCityDistrictArray.splice(index,1,selectedItem.label)
const areaData = findChildrenByCode(colPickerData, selectedItem.value)
if (areaData && areaData.length) {
resolve(
areaData.map((item) => {
return {
value: item.value,
label: item.text
}
})
)
} else {
finish()
provinceCityDistrict.value = provinceCityDistrictArray.join('')
}
}
// 常住地
const provinceCityDistrict2 = ref("")
const provinceCityDistrictArray2 = []
const columnChange2 = ({ selectedItem, index, resolve, finish }) => {
provinceCityDistrictArray2.splice(index,1,selectedItem.label)
const areaData = findChildrenByCode(colPickerData, selectedItem.value)
if (areaData && areaData.length) { if (areaData && areaData.length) {
resolve( resolve(
areaData.map((item) => { areaData.map((item) => {
...@@ -341,15 +404,17 @@ const columnChange = ({ selectedItem, resolve, finish }) => { ...@@ -341,15 +404,17 @@ const columnChange = ({ selectedItem, resolve, finish }) => {
value: item.value, value: item.value,
label: item.text label: item.text
} }
}) })
) )
} else { } else {
finish() finish()
provinceCityDistrict2.value = provinceCityDistrictArray2.join('')
} }
} }
let residenceCodes = ref(''); let residenceCodes = ref('');
function handleConfirm({ value }) { function handleConfirm({ value }) {
console.log(value)
residenceCodes.value = value.join() residenceCodes.value = value.join()
} }
...@@ -445,6 +510,8 @@ const getData = async () => { ...@@ -445,6 +510,8 @@ const getData = async () => {
return; return;
} }
userInfo.value = data; userInfo.value = data;
const residence = data.residenceAddress.split('-')
const birth = data.birthAddress.split('-')
residenceCodes.value = data.residenceCodes residenceCodes.value = data.residenceCodes
birthCodes.value = data.birthCodes birthCodes.value = data.birthCodes
userInfo.value.identityTypes = data.identityTypes.split(',').map(item => item * 1); userInfo.value.identityTypes = data.identityTypes.split(',').map(item => item * 1);
...@@ -452,8 +519,10 @@ const getData = async () => { ...@@ -452,8 +519,10 @@ const getData = async () => {
userInfo.value.positionalTitleTwo = data.positionalTitle.split('-')[1] userInfo.value.positionalTitleTwo = data.positionalTitle.split('-')[1]
userInfo.value.professionalCertificatesOne = data.professionalCertificates.split('-')[1] userInfo.value.professionalCertificatesOne = data.professionalCertificates.split('-')[1]
userInfo.value.professionalCertificatesTwo = data.professionalCertificates.split('-')[1] userInfo.value.professionalCertificatesTwo = data.professionalCertificates.split('-')[1]
value.value = data.residenceCodes.split(','); provinceCityDistrict.value = residence[0]
value2.value = data.birthCodes.split(','); provinceCityDistrict2.value = birth[0]
userInfo.value.residenceAddress = residence[1]
userInfo.value.birthAddress = birth[1]
educationText.value = educationOpstion.value[data.education - 1].text; educationText.value = educationOpstion.value[data.education - 1].text;
} }
}; };
...@@ -466,8 +535,8 @@ const submit = () => { ...@@ -466,8 +535,8 @@ const submit = () => {
saveUserInfoApi({ saveUserInfoApi({
residenceCodes: residenceCodes.value, residenceCodes: residenceCodes.value,
birthCodes:birthCodes.value, birthCodes:birthCodes.value,
residenceAddress, residenceAddress: provinceCityDistrict.value + "-" + residenceAddress,
birthAddress, birthAddress:provinceCityDistrict2.value + "-" + birthAddress ,
major, major,
positionalTitle: positionalTitleOne + '-' + positionalTitleTwo, positionalTitle: positionalTitleOne + '-' + positionalTitleTwo,
professionalCertificates: professionalCertificatesOne + '-' + professionalCertificatesTwo, professionalCertificates: professionalCertificatesOne + '-' + professionalCertificatesTwo,
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<NavBar :showIcon="true" backgroundBox="#ffffff" :showTitle="true" title="我的简历"></NavBar> <NavBar :showIcon="true" backgroundBox="#ffffff" :showTitle="true" title="我的简历"></NavBar>
<div class="resume-page"> <div class="resume-page">
<!-- 个人信息 --> <!-- 个人信息 -->
<view class="user-info flex-between" @click="navigateTo('/pages/user/resume/essentialInformation/index')"> <view class="user-info flex-between" @click="navigateTo('/pages/user/resume/essentialInformation/index')">
<view> <view>
<view class="name" <view class="name"
>{{ resumeData.realName || "未实名" }} >{{ resumeData.realName || "未实名" }}
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<image v-else class="avatar" src="@/static/image/user/default-avatar.png" mode="" /> <image v-else class="avatar" src="@/static/image/user/default-avatar.png" mode="" />
</view> </view>
<!-- 个人信息 --> <!-- 个人信息 -->
<view class="basics"> <view class="basics" v-if="userInfoActive">
<text class="gradient-title">个人信息</text> <text class="gradient-title">个人信息</text>
<view class="basics-top"> <view class="basics-top">
<view class="item" > <view class="item" >
...@@ -55,11 +55,11 @@ ...@@ -55,11 +55,11 @@
</view> </view>
<view class="information"> <view class="information">
<text class="label">户籍地</text> <text class="label">户籍地</text>
<text class="value">{{resumeData.residenceCodes}}</text> <text class="value">{{resumeData.residenceAddress}}</text>
</view> </view>
<view class="information"> <view class="information">
<text class="label">常住地</text> <text class="label">常住地</text>
<text class="value">{{resumeData.birthCodes}}</text> <text class="value">{{resumeData.birthAddress}}</text>
</view> </view>
</view> </view>
<!-- 求职状态 --> <!-- 求职状态 -->
...@@ -75,12 +75,12 @@ ...@@ -75,12 +75,12 @@
> >
<view class="flex-between"> <view class="flex-between">
<text>{{ resumeData.jobStatusText }}</text> <text>{{ resumeData.jobStatusText }}</text>
<view class="arrow" bind:tap="onOpenStateSelect"></view> <view class="arrow"></view>
</view> </view>
</wd-picker> </wd-picker>
</view> </view>
<!-- 个人优势 --> <!-- 个人优势 -->
<view class="advantage" @click="navigateTo(`/pages/user/resume/introduce/index?data=${resumeData.personalAdvantage}`)"> <view class="advantage" @click="toPage(0)">
<view class="flex-between"> <view class="flex-between">
<text class="gradient-title">个人优势</text> <text class="gradient-title">个人优势</text>
<view class="arrow" bind:tap="navigateTo"></view> <view class="arrow" bind:tap="navigateTo"></view>
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
<!-- 求职意向 --> <!-- 求职意向 -->
<view <view
class="intention" class="intention"
@click="navigateTo(`/pages/user/resume/jobIntention/index?data=${encodeURIComponent(JSON.stringify(resumeData))}`)" @click="toPage(1)"
> >
<view class="flex-between"> <view class="flex-between">
<text class="gradient-title">求职意向</text> <text class="gradient-title">求职意向</text>
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
>{{ resumeData.minSalary }}{{ resumeData.minSalary ? "-" : "" }}{{ resumeData.maxSalary >{{ resumeData.minSalary }}{{ resumeData.minSalary ? "-" : "" }}{{ resumeData.maxSalary
}}{{ resumeData.districtCode ? " | " : "" }} {{ resumeData.districtCode }}</view }}{{ resumeData.districtCode ? " | " : "" }} {{ resumeData.districtCode }}</view
> >
<text class="text">{{ resumeData.needAccommodation === 1?'需提供住宿':'不需提供住宿' }}</text> <text class="text">{{ resumeData.needAccommodationText }}</text>
</view> </view>
</view> </view>
<!-- 工作经历 --> <!-- 工作经历 -->
...@@ -114,13 +114,7 @@ ...@@ -114,13 +114,7 @@
<wd-icon <wd-icon
name="add" name="add"
size="24rpx" size="24rpx"
@click=" @click="toPage(2)"
navigateTo(
`/pages/user/resume/workExperience/index?data=${encodeURIComponent(
JSON.stringify(resumeData.workExperience)
)}`
)
"
></wd-icon> ></wd-icon>
</view> </view>
<view class="list"> <view class="list">
...@@ -157,13 +151,7 @@ ...@@ -157,13 +151,7 @@
<wd-icon <wd-icon
name="add" name="add"
size="24rpx" size="24rpx"
@click=" @click="toPage(3)"
navigateTo(
`/pages/user/resume/educationExperience/index?data=${encodeURIComponent(
JSON.stringify(resumeData.educationExperience)
)}`
)
"
></wd-icon> ></wd-icon>
</view> </view>
<view class="list"> <view class="list">
...@@ -213,6 +201,7 @@ import { useToast } from "wot-design-uni"; ...@@ -213,6 +201,7 @@ import { useToast } from "wot-design-uni";
import { navigateTo } from "@/utils/utils.js"; import { navigateTo } from "@/utils/utils.js";
import evn from "@/utils/config.js"; import evn from "@/utils/config.js";
const toast = useToast(); const toast = useToast();
const userInfoActive = ref(null)
const resumeData = reactive({ const resumeData = reactive({
preferredCityName: "", preferredCityName: "",
personalAdvantage: "", personalAdvantage: "",
...@@ -248,9 +237,9 @@ function formatTimestamp(timestampInMilliseconds) { ...@@ -248,9 +237,9 @@ function formatTimestamp(timestampInMilliseconds) {
// 创建日期对象 // 创建日期对象
var date = new Date(timestampInMilliseconds); var date = new Date(timestampInMilliseconds);
// 获取年月日 // 获取年月日
var year = date.getUTCFullYear(); var year = date.getFullYear();
var month = ("0" + (date.getUTCMonth() + 1)).slice(-2); // 月份是从0开始的,所以加1,并确保两位数 var month = ("0" + (date.getMonth() + 1)).slice(-2); // 月份是从0开始的,所以加1,并确保两位数
var day = ("0" + date.getUTCDate()).slice(-2); // 确保两位数 var day = ("0" + date.getDate()).slice(-2); // 确保两位数
return `${year}.${month}.${day}`; return `${year}.${month}.${day}`;
} }
// 数据回显 // 数据回显
...@@ -284,6 +273,13 @@ const getUserResume = () => { ...@@ -284,6 +273,13 @@ const getUserResume = () => {
getCityNameByCodeApi(districtCode).then(res => { getCityNameByCodeApi(districtCode).then(res => {
resumeData.districtCode = res.data.cityName; resumeData.districtCode = res.data.cityName;
}) })
if (needAccommodation === 1) {
resumeData.needAccommodationText = '需提供住宿'
} else if (needAccommodation === 0) {
resumeData.needAccommodationText = '不需提供住宿'
} else {
resumeData.needAccommodationText = ''
}
resumeData.needAccommodation = needAccommodation resumeData.needAccommodation = needAccommodation
resumeData.maxSalary = maxSalary && maxSalary / 1000 + "k"; resumeData.maxSalary = maxSalary && maxSalary / 1000 + "k";
resumeData.minSalary = minSalary && minSalary / 1000 + "k"; resumeData.minSalary = minSalary && minSalary / 1000 + "k";
...@@ -292,8 +288,9 @@ const getUserResume = () => { ...@@ -292,8 +288,9 @@ const getUserResume = () => {
}); });
// 获取用户基本信息 // 获取用户基本信息
getLoginUserApi().then(async res => { getLoginUserApi().then(async res => {
userInfoActive.value = res.data
if (res.code === 200) { if (res.code === 200) {
const {residenceCodes,birthCodes,specialCertificates,positionalTitle,professionalCertificates,major,identityTypes,sex,workAge, education, name, username, avatarPath, birthday, jobStatus } = res.data; const {residenceAddress,birthAddress,specialCertificates,positionalTitle,professionalCertificates,major,identityTypes,sex,workAge, education, name, username, avatarPath, birthday, jobStatus } = res.data;
/* this.setData({ /* this.setData({
realName, realName,
workExperienceYear: workExperience, workExperienceYear: workExperience,
...@@ -311,17 +308,19 @@ const getUserResume = () => { ...@@ -311,17 +308,19 @@ const getUserResume = () => {
resumeData.age = calculateAge(birthday); resumeData.age = calculateAge(birthday);
resumeData.sex = sex; resumeData.sex = sex;
resumeData.identityTypes = await getEnumText2("EnumIdentityType", identityTypes.split(","));; resumeData.identityTypes = await getEnumText2("EnumIdentityType", identityTypes.split(","));;
resumeData.birthday = formatTimestamp(28800000); resumeData.birthday = formatTimestamp(birthday);
resumeData.major = major; resumeData.major = major;
resumeData.positionalTitle = positionalTitle; resumeData.positionalTitle = positionalTitle;
resumeData.professionalCertificates = professionalCertificates; resumeData.professionalCertificates = professionalCertificates;
resumeData.specialCertificates = specialCertificates; resumeData.specialCertificates = specialCertificates;
getCityNameByCodeApi(residenceCodes.split(",")[2]).then(res => { resumeData.residenceAddress = residenceAddress;
resumeData.residenceCodes = res.data.provinceName+res.data.cityName+res.data.districtName; resumeData.birthAddress = birthAddress;
}) // getCityNameByCodeApi(residenceCodes.split(",")[2]).then(res => {
getCityNameByCodeApi(birthCodes.split(",")[2]).then(res => { // resumeData.residenceCodes = res.data.provinceName+res.data.cityName+res.data.districtName;
resumeData.birthCodes = res.data.provinceName+res.data.cityName+res.data.districtName; // })
}) // getCityNameByCodeApi(birthCodes.split(",")[2]).then(res => {
// resumeData.birthCodes = res.data.provinceName+res.data.cityName+res.data.districtName;
// })
} }
}); });
}; };
...@@ -336,8 +335,45 @@ const getOpstion = async () => { ...@@ -336,8 +335,45 @@ const getOpstion = async () => {
jobStatusColumns.value = await getEumData("EnumUserJobStatus"); jobStatusColumns.value = await getEumData("EnumUserJobStatus");
console.log(jobStatusColumns.value); console.log(jobStatusColumns.value);
}; };
const toPage = (index) => {
if (!userInfoActive.value) {
uni.showToast({
title: "请先完善个人基本信息",
icon: "none"
});
return
}
switch (index) {
case 0:
navigateTo(`/pages/user/resume/introduce/index?data=${resumeData.personalAdvantage}`)
break;
case 1:
navigateTo(`/pages/user/resume/jobIntention/index?data=${encodeURIComponent(JSON.stringify(resumeData))}`)
break;
case 2:
navigateTo(`/pages/user/resume/workExperience/index?data=${encodeURIComponent(
JSON.stringify(resumeData.workExperience)
)}`
)
break;
case 3:
navigateTo(`/pages/user/resume/educationExperience/index?data=${encodeURIComponent(
JSON.stringify(resumeData.educationExperience)
)}`
)
break;
}
}
const changeJobStatus = async e => { const changeJobStatus = async e => {
console.log(e.selectedItems.text); if (!userInfoActive.value) {
uni.showToast({
title: "请先完善个人基本信息",
icon: "none"
});
return
}
const { code, message } = await saveJobStatusApi({ jobStatus: e.value }); const { code, message } = await saveJobStatusApi({ jobStatus: e.value });
if (code == 200) { if (code == 200) {
resumeData.jobStatusText = e.selectedItems.text; resumeData.jobStatusText = e.selectedItems.text;
......
...@@ -21,7 +21,9 @@ import { saveAdvantageApi } from "@/api/user.js"; ...@@ -21,7 +21,9 @@ import { saveAdvantageApi } from "@/api/user.js";
const inputvalue = ref(""); const inputvalue = ref("");
onLoad(options => { onLoad(options => {
inputvalue.value = options.data; if (options.data) {
inputvalue.value = options.data;
}
}); });
const save = () => { const save = () => {
saveAdvantageApi({ personalAdvantage: inputvalue.value }).then(res => { saveAdvantageApi({ personalAdvantage: inputvalue.value }).then(res => {
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<view class="form-item"> <view class="form-item">
<view class="form-info"> <view class="form-info">
<view class="label">公司名称</view> <view class="label">公司名称</view>
<input type="text" v-model="params.companyName" placeholder="请输入" /> <input type="text" v-model="params.companyName" placeholder="请输入" placeholder-class="placeholder" />
</view> </view>
</view> </view>
<!-- 在职时间 --> <!-- 在职时间 -->
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
type="year-month" type="year-month"
v-model="params.endDate" v-model="params.endDate"
:formatter="formatter" :formatter="formatter"
class="my-datetime-picker"
/> />
</view> </view>
</view> </view>
...@@ -64,7 +65,7 @@ ...@@ -64,7 +65,7 @@
<view class="form-item"> <view class="form-item">
<view class="form-info"> <view class="form-info">
<view class="label">工作内容</view> <view class="label">工作内容</view>
<textarea :maxlength="500" v-model="params.content" placeholder="请输入" /> <textarea :maxlength="500" v-model="params.content" placeholder="请输入" placeholder-class="placeholder"/>
</view> </view>
</view> </view>
</view> </view>
...@@ -213,9 +214,13 @@ const save = () => { ...@@ -213,9 +214,13 @@ const save = () => {
} }
.form-item .form-info .cont { .form-item .form-info .cont {
font-size: 28rpx; font-size: 28rpx;
font-weight: 600; // font-weight: 600;
color: #213452; color: #213452;
} }
.placeholder{
color: #bfbfbf;
font-size: 28rpx;
}
/* 保存按钮 */ /* 保存按钮 */
.btn-wrapper { .btn-wrapper {
...@@ -253,8 +258,8 @@ const save = () => { ...@@ -253,8 +258,8 @@ const save = () => {
color: #a0afc3; color: #a0afc3;
} }
.placeholder-style { .placeholder-style {
font-size: 28rpx !important; color: #bfbfbf !important;
color: #a0afc3 !important; font-size: 28rpx;
} }
.flex-r-c { .flex-r-c {
display: flex; display: flex;
......
...@@ -43,6 +43,8 @@ instance.interceptors.response.use( ...@@ -43,6 +43,8 @@ instance.interceptors.response.use(
}); });
} }
if (response.data.code === 9) { if (response.data.code === 9) {
const path = getCurrentPages()[0].$page.path
if(path === '/pages/user/resume/essentialInformation/index') return
uni.showModal({ uni.showModal({
title: "提示", title: "提示",
content: "请先完善基本信息!", content: "请先完善基本信息!",
......
...@@ -10,15 +10,15 @@ import { getDictDataApi } from "@/api/common"; ...@@ -10,15 +10,15 @@ import { getDictDataApi } from "@/api/common";
export const getEumData = type => { export const getEumData = type => {
const storage = getStorageSync(type); const storage = getStorageSync(type);
return new Promise(resolve => { return new Promise(resolve => {
if (storage) { // if (storage) {
resolve(storage); // resolve(storage);
} else { // } else {
getDictDataApi([type]).then(res => { getDictDataApi([type]).then(res => {
const data = res.data[type]; const data = res.data[type];
setStorageSync(type, data); setStorageSync(type, data);
resolve(data); resolve(data);
}); });
} // }
}); });
}; };
export const getEnumText = async (type, code) => { export const getEnumText = async (type, code) => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment