提交1
This commit is contained in:
@@ -84,16 +84,8 @@
|
||||
></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-item required" v-if="serviceForm.demandType == '4' || serviceForm.demandType == '5'">
|
||||
<label class="form-label">人员状态</label>
|
||||
<div class="radio-group">
|
||||
<label class="radio-item" v-for="item in personStatusOptions" :key="item.value">
|
||||
<input type="radio" name="personStatus" :value="item.value" v-model="serviceForm.personStatus" />
|
||||
<span class="radio-label">{{ item.label }}</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</view>
|
||||
|
||||
// </view>
|
||||
|
||||
<view class="inner-part" v-if="serviceForm.demandType == '4' || serviceForm.demandType == '5'">
|
||||
<div class="form-item">
|
||||
|
||||
@@ -4,22 +4,21 @@
|
||||
<u-image src="@/static/images/top.png" width="750rpx" height="496rpx" />
|
||||
</view>
|
||||
<view class="job-list__navbar">
|
||||
<u-navbar
|
||||
title="服务详情"
|
||||
:autoBack="true"
|
||||
bgColor="transparent"
|
||||
leftIconColor="#fff"
|
||||
:titleStyle="{ color: '#fff' }"
|
||||
>
|
||||
<u-icon
|
||||
v-show="$store.getters.roles.includes('shequn')"
|
||||
@tap="$store.commit('SET_SHOWEXITPOPUP', true)"
|
||||
name="list"
|
||||
slot="right"
|
||||
size="44rpx"
|
||||
color="#fff"
|
||||
></u-icon>
|
||||
</u-navbar>
|
||||
<div class="navbar">
|
||||
<view class="navbar-left" @click="goBack">
|
||||
<uni-icons name="back" color="#fff" size="36"></uni-icons>
|
||||
</view>
|
||||
<view class="navbar-title" style="color: #fff">服务详情</view>
|
||||
<view class="navbar-right">
|
||||
<uni-icons
|
||||
v-show="$store.getters.roles.includes('shequn')"
|
||||
@tap="$store.commit('SET_SHOWEXITPOPUP', true)"
|
||||
name="list"
|
||||
size="44rpx"
|
||||
color="#fff"
|
||||
></uni-icons>
|
||||
</view>
|
||||
</div>
|
||||
</view>
|
||||
<view class="job-list__content">
|
||||
<img
|
||||
@@ -92,7 +91,7 @@
|
||||
<view style="width: 100%;display: flex;justify-content: space-between;">
|
||||
<view class="xuqiushu-box-item" @click="activeType = 1">
|
||||
<view class="xuqiushu-box-item-title">
|
||||
<view :style="{color: activeType == 1 ? '#1A62CE' : '#3d3d3d'}">求职需求数</view>
|
||||
<view :style="{color: activeType == 1 ? '#1A62CE' : '#3d3d3d'}">求职需求数2</view>
|
||||
<!-- <view style="color: #3D3D3D;">需求数</view> -->
|
||||
</view>
|
||||
<view class="xuqiushu-box-item-num">{{ jobSearchList.length }}</view>
|
||||
@@ -390,61 +389,80 @@
|
||||
closeOnClickOverlay
|
||||
@close="openDeal = false"
|
||||
>
|
||||
<u--form
|
||||
class="self-form"
|
||||
labelPosition="top"
|
||||
:model="formData"
|
||||
:rules="rules"
|
||||
ref="uForm"
|
||||
labelWidth="300"
|
||||
>
|
||||
<u-form-item label="实际解决时间" prop="actualSolveDate" required>
|
||||
<view
|
||||
class="bordered"
|
||||
style="width: 100%"
|
||||
@click="showTime = true"
|
||||
:class="{ noValue: !formData.actualSolveDate }"
|
||||
>{{ formData.actualSolveDate || "请选择" }}</view
|
||||
>
|
||||
<u-icon slot="right" name="arrow-down" color="#A6A6A6"></u-icon>
|
||||
</u-form-item>
|
||||
<u-form-item label="经办人" prop="agentUserName" required>
|
||||
<u--input
|
||||
v-model="formData.agentUserName"
|
||||
border="surround"
|
||||
placeholder="请输入"
|
||||
></u--input>
|
||||
<u-icon slot="right" name="edit-pen" color="#A6A6A6"></u-icon>
|
||||
</u-form-item>
|
||||
<u-form-item label="人员状态" prop="personStatus" required>
|
||||
<view class="person-status-select" @click="showPersonStatusPicker = true"
|
||||
:class="{noValue: !formData.personStatus}">
|
||||
{{ getDictLabel(formData.personStatus, dict.personStatusList) || '请选择' }}
|
||||
</view>
|
||||
<u-picker
|
||||
:show="showPersonStatusPicker"
|
||||
:columns="[dict.personStatusList]"
|
||||
keyName="dictLabel"
|
||||
@confirm="onPersonStatusConfirm"
|
||||
@cancel="showPersonStatusPicker = false"
|
||||
/>
|
||||
</u-form-item>
|
||||
<u-form-item label="附件" prop="fileUrl">
|
||||
<ImageUpload
|
||||
:fileList="fileList"
|
||||
@update="changeFile"
|
||||
:maxCount="6"
|
||||
/>
|
||||
</u-form-item>
|
||||
<div class="self-form">
|
||||
<div class="form-item required">
|
||||
<div class="form-label">实际解决时间</div>
|
||||
<div class="form-content">
|
||||
<view
|
||||
class="bordered"
|
||||
style="width: 100%"
|
||||
@click="showTime = true"
|
||||
:class="{ noValue: !formData.actualSolveDate }"
|
||||
>{{ formData.actualSolveDate || "请选择" }}</view
|
||||
>
|
||||
<uni-icons name="arrow-down" color="#A6A6A6" size="24"></uni-icons>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-item required">
|
||||
<div class="form-label">经办人</div>
|
||||
<div class="form-content">
|
||||
<input
|
||||
v-model="formData.agentUserName"
|
||||
class="form-input"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
<uni-icons name="edit" color="#A6A6A6" size="24"></uni-icons>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-item required">
|
||||
<div class="form-label">人员状态</div>
|
||||
<div class="form-content">
|
||||
<view class="person-status-select" @click="showPersonStatusPicker = true"
|
||||
:class="{noValue: !formData.personStatus}">
|
||||
{{ getDictLabel(formData.personStatus, dict.personStatusList) || '请选择' }}
|
||||
</view>
|
||||
<!-- 自定义picker弹出层 -->
|
||||
<uni-popup v-model="showPersonStatusPicker" mode="bottom">
|
||||
<view class="picker-container">
|
||||
<view class="picker-header">
|
||||
<view @click="showPersonStatusPicker = false">取消</view>
|
||||
<view>人员状态</view>
|
||||
<view @click="onPersonStatusConfirm">确定</view>
|
||||
</view>
|
||||
<view class="picker-content">
|
||||
<view v-for="item in dict.personStatusList" :key="item.dictValue"
|
||||
class="picker-item" @click="selectPersonStatus(item)">
|
||||
{{ item.dictLabel }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-label">附件</div>
|
||||
<div class="form-content">
|
||||
<ImageUpload
|
||||
:disabled="disabled"
|
||||
:fileList="fileList"
|
||||
@update="changeFile"
|
||||
:maxCount="6"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<u-form-item label="解决说明" prop="solveDesc" required>
|
||||
<u-textarea
|
||||
v-model="formData.solveDesc"
|
||||
placeholder="请输入"
|
||||
></u-textarea>
|
||||
<u-icon slot="right" name="edit-pen" color="#A6A6A6"></u-icon>
|
||||
</u-form-item>
|
||||
</u--form>
|
||||
<div class="form-item required">
|
||||
<div class="form-label">解决说明</div>
|
||||
<div class="form-content">
|
||||
<textarea
|
||||
v-model="formData.solveDesc"
|
||||
class="form-textarea"
|
||||
placeholder="请输入"
|
||||
></textarea>
|
||||
<uni-icons name="edit" color="#A6A6A6" size="24"></uni-icons>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<view class="button-area">
|
||||
<view class="btn" @click="openDeal = false">取消</view>
|
||||
<view
|
||||
@@ -582,6 +600,7 @@ export default {
|
||||
},
|
||||
openDeal: false,
|
||||
activeType: 1,
|
||||
disabled: false,
|
||||
showPersonStatusPicker: false,
|
||||
personStatusLabel: '',
|
||||
};
|
||||
@@ -590,14 +609,15 @@ export default {
|
||||
this.form.id = options.id;
|
||||
this.form.userId = options.userId;
|
||||
|
||||
this.getPersonInfo();
|
||||
this.getPersonInfo11();
|
||||
},
|
||||
onShow() {
|
||||
// 移除show重置,避免影响弹窗显示
|
||||
this.getListPersonDemand();
|
||||
this.serviceTraceability();
|
||||
// this.serviceTraceability();
|
||||
},
|
||||
mounted() {
|
||||
this.getPersonInfo11();
|
||||
let arr = [
|
||||
{
|
||||
key: "qcjy_zgzpgz",
|
||||
@@ -626,6 +646,22 @@ export default {
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 返回上一页
|
||||
goBack() {
|
||||
uni.navigateBack();
|
||||
},
|
||||
|
||||
// 选择人员状态
|
||||
selectPersonStatus(item) {
|
||||
this.formData.personStatus = item.dictValue;
|
||||
this.showPersonStatusPicker = false;
|
||||
},
|
||||
|
||||
// 确认人员状态选择
|
||||
onPersonStatusConfirm() {
|
||||
// 已在selectPersonStatus中处理
|
||||
},
|
||||
|
||||
getJobWorkTypeName(data) {
|
||||
if (data) {
|
||||
let arr = this.jobTypeList.filter((ele) => ele.id == data);
|
||||
@@ -648,12 +684,7 @@ export default {
|
||||
this.show = false;
|
||||
// console.log('close');
|
||||
},
|
||||
serviceTraceability() {
|
||||
const userId = this.form.userId;
|
||||
serviceTraceability(userId).then((res) => {
|
||||
this.serviceTotal = res.data;
|
||||
});
|
||||
},
|
||||
|
||||
goAddServices() {
|
||||
|
||||
uni.navigateTo({
|
||||
@@ -888,10 +919,11 @@ export default {
|
||||
});
|
||||
},
|
||||
|
||||
getPersonInfo() {
|
||||
getPersonInfo11() {
|
||||
getPersonInfo(this.form.id).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.form = res.data;
|
||||
console.log("res.data",res.data)
|
||||
}
|
||||
});
|
||||
},
|
||||
@@ -900,6 +932,118 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
/* 表单样式 */
|
||||
.self-form {
|
||||
padding: 20rpx;
|
||||
}
|
||||
|
||||
.form-item {
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
|
||||
.form-item.required .form-label::after {
|
||||
content: '*';
|
||||
color: #ff4d4f;
|
||||
margin-left: 4rpx;
|
||||
}
|
||||
|
||||
.form-label {
|
||||
font-size: 28rpx;
|
||||
color: #333;
|
||||
margin-bottom: 12rpx;
|
||||
}
|
||||
|
||||
.form-content {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.form-input {
|
||||
width: 100%;
|
||||
padding: 20rpx;
|
||||
border: 1rpx solid #d9d9d9;
|
||||
border-radius: 8rpx;
|
||||
font-size: 28rpx;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.form-textarea {
|
||||
width: 100%;
|
||||
min-height: 200rpx;
|
||||
padding: 20rpx;
|
||||
border: 1rpx solid #d9d9d9;
|
||||
border-radius: 8rpx;
|
||||
font-size: 28rpx;
|
||||
background-color: #fff;
|
||||
resize: none;
|
||||
}
|
||||
|
||||
/* 导航栏样式 */
|
||||
.navbar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 20rpx 30rpx;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.navbar-left,
|
||||
.navbar-right {
|
||||
width: 60rpx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.navbar-title {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
font-size: 36rpx;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* 自定义picker样式 */
|
||||
.picker-container {
|
||||
background-color: #fff;
|
||||
border-radius: 20rpx 20rpx 0 0;
|
||||
padding-bottom: 30rpx;
|
||||
}
|
||||
|
||||
.picker-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 20rpx 30rpx;
|
||||
border-bottom: 1rpx solid #f0f0f0;
|
||||
}
|
||||
|
||||
.picker-header > view {
|
||||
font-size: 32rpx;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.picker-header > view:first-child {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.picker-header > view:last-child {
|
||||
color: #1A62CE;
|
||||
}
|
||||
|
||||
.picker-content {
|
||||
max-height: 500rpx;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.picker-item {
|
||||
padding: 24rpx 30rpx;
|
||||
font-size: 30rpx;
|
||||
color: #333;
|
||||
border-bottom: 1rpx solid #f5f5f5;
|
||||
}
|
||||
|
||||
.picker-item:active {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.job-list {
|
||||
&__navbar {
|
||||
height: 80rpx;
|
||||
|
||||
@@ -138,7 +138,6 @@
|
||||
@confirm="confirmDate('hopeSolveDate', $event)" @cancel="cancelPicker('hopeSolveDate')"></u-datetime-picker>
|
||||
<u-picker :show="show.jobWorkType" :columns="[jobTypeList]" keyName="workTypeName"
|
||||
@confirm="jobTypeConfirm('jobWorkType', $event)" @cancel="cancelPicker('jobWorkType')"></u-picker>
|
||||
<!-- 使用dict.type语法访问字典数据 -->
|
||||
<u-picker :show="show.emplymentYear" :columns="[dict.type[this.dictTypeMap.emplymentYear]]" keyName="label"
|
||||
@confirm="pickerConfirm('emplymentYear', $event)" @cancel="cancelPicker('emplymentYear')"></u-picker>
|
||||
<u-picker :show="show.salaryType" :columns="[dict.type[this.dictTypeMap.salaryType]]" keyName="label"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="job-list">
|
||||
<view class="top_box_bg">
|
||||
<u-image src="../../static/images/top.png" width="750rpx" height="496rpx" />
|
||||
// <u-image src="../../static/images/top.png" width="750rpx" height="496rpx" />
|
||||
</view>
|
||||
<view class="job-list__navbar">
|
||||
<u-navbar
|
||||
@@ -24,7 +24,7 @@
|
||||
<view class="job-list__content">
|
||||
<img
|
||||
class="top_box_bg_service"
|
||||
src="../static/images/person/serviceFrequency.png"
|
||||
src=""
|
||||
width="360rpx"
|
||||
height="50rpx"
|
||||
alt=""
|
||||
@@ -64,13 +64,13 @@
|
||||
</view>
|
||||
<view>
|
||||
<img
|
||||
src="../../static/images/person/malepng.png"
|
||||
src=""
|
||||
v-if="form.gender == 0"
|
||||
width="70rpx"
|
||||
alt=""
|
||||
/>
|
||||
<img
|
||||
src="../../static/images/person/femalepng.png"
|
||||
src=""
|
||||
v-if="form.gender == 1"
|
||||
width="70rpx"
|
||||
alt=""
|
||||
@@ -80,7 +80,7 @@
|
||||
<view class="visitAndInvestigate" @click="goAddServices">
|
||||
<view class="text">服务</view>
|
||||
<img
|
||||
src="../../static/images/person/fillInRecords.png"
|
||||
src=""
|
||||
width="140rpx"
|
||||
height="40rpx"
|
||||
alt=""
|
||||
@@ -382,7 +382,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="addNeeds" @click="goAddNeeds">
|
||||
<img src="./static/images/person/addNeeds1.png" />
|
||||
<img src="" />
|
||||
</view>
|
||||
<u-popup
|
||||
:show="openDeal"
|
||||
@@ -464,7 +464,7 @@
|
||||
<view class="dialog_div">
|
||||
<view class="dialog_div_item" @click="goAddNeeds(1)">
|
||||
<img
|
||||
src="./static/images/person/entrepreneurialIcon.png"
|
||||
src=""
|
||||
style="margin-right: 10rpx"
|
||||
width="18rpx"
|
||||
alt=""
|
||||
@@ -474,7 +474,7 @@
|
||||
</view>
|
||||
<view class="dialog_div_item" @click="goAddNeeds(3)">
|
||||
<img
|
||||
src="./static/images/person/jobSeekingIcon.png"
|
||||
src=""
|
||||
style="margin-right: 10rpx"
|
||||
width="18rpx"
|
||||
alt=""
|
||||
@@ -484,7 +484,7 @@
|
||||
</view>
|
||||
<view class="dialog_div_item" @click="goAddNeeds(4)">
|
||||
<img
|
||||
src="./static/images/person/trainingIcon.png"
|
||||
src=""
|
||||
style="margin-right: 10rpx"
|
||||
width="18rpx"
|
||||
alt=""
|
||||
@@ -494,7 +494,7 @@
|
||||
</view>
|
||||
<view class="dialog_div_item" @click="goAddNeeds(5)">
|
||||
<img
|
||||
src="./static/images/selected.png"
|
||||
src="."
|
||||
style="margin-right: 10rpx"
|
||||
width="18rpx"
|
||||
alt=""
|
||||
@@ -868,6 +868,7 @@ this.tt()
|
||||
getPersonInfo(this.form.id).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.form = res.data;
|
||||
console.log("res",res.data)
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
@@ -29,10 +29,7 @@
|
||||
/>
|
||||
</view>
|
||||
|
||||
<view class="remember-area">
|
||||
<checkbox v-model="loginForm.rememberMe" class="remember-checkbox"></checkbox>
|
||||
<text class="remember-text">记住密码</text>
|
||||
</view>
|
||||
|
||||
|
||||
<button class="login-btn" @click="useVerify">登录</button>
|
||||
</view>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { getToken } from './auth.js'
|
||||
// 导入当前目录下的auth.js,使用更具体的路径以避免混淆
|
||||
import { getToken } from './auth.js';
|
||||
|
||||
// 配置API基础URL
|
||||
const baseURL = 'http://10.160.0.5:8907/'
|
||||
@@ -26,7 +27,7 @@ export function request(options) {
|
||||
// 添加固定的Authorization token
|
||||
if (!isToken) {
|
||||
options.headers = options.headers || {}
|
||||
options.headers['Authorization'] = 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJyMG5ONWJVaXA5cDVBTlBRREN5TDdOc05sVk04S3p3bCIsInVzZXJJZCI6MX0.7aYEALR02yyTEFf3GJV5VbjjVzfrghs8bjqcqQs_V9E'
|
||||
options.headers['Authorization'] = 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJsNDRvNmhxckdOOW1XcG1pWlpJcXZ0UXJMdGsyTlFhQSIsInVzZXJJZCI6MX0.K5H-Rpof9oI1CCIEtheEQ96XGAxPWS7tzyjPbXwAXrQ'
|
||||
}
|
||||
|
||||
// 确保URL是字符串类型
|
||||
|
||||
Reference in New Issue
Block a user