merge: 合并main分支到CareerMap
This commit is contained in:
@@ -1,177 +1,147 @@
|
||||
<template>
|
||||
<view class="page">
|
||||
<u-navbar
|
||||
title="帮扶登记"
|
||||
:autoBack="true"
|
||||
bgColor="transparent"
|
||||
leftIconColor="#fff"
|
||||
:titleStyle="{ color: '#fff' }"
|
||||
></u-navbar>
|
||||
<view class="page" style="background-image: url('../../../packageRc/static/pageBg.png');">
|
||||
<view class="input-outer-part">
|
||||
<scroll-view scroll-y="true" style="height: calc(100vh - 100px)">
|
||||
<view class="inner">
|
||||
<div class="self-form">
|
||||
<view class="inner-part">
|
||||
<div class="form-item required">
|
||||
<label class="form-label">被帮扶对象</label>
|
||||
<input
|
||||
v-model="serviceForm.serviceObjectName"
|
||||
style="border: none; width: 100%; padding: 10px 0;"
|
||||
placeholder="请输入"
|
||||
disabled
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="form-item required">
|
||||
<label class="form-label">帮扶方式</label>
|
||||
<div class="form-select-wrapper" style="position: relative;">
|
||||
<!-- 显示区域 -->
|
||||
<div
|
||||
class="form-value"
|
||||
:class="{ 'noValue': !serviceForm.demandType }"
|
||||
@click="showDemandTypePicker = !showDemandTypePicker"
|
||||
style="width: 100%; height: 40px; padding: 0 10px; border: 1px solid #e6e6e6; border-radius: 8rpx; background-color: #fff; display: flex; align-items: center; justify-content: space-between; cursor: pointer;"
|
||||
<view class="inner-part">
|
||||
<view class="form-item required">
|
||||
<label class="form-label">被帮扶对象</label>
|
||||
<input
|
||||
v-model="serviceForm.serviceObjectName"
|
||||
style="border: none; width: 100%;"
|
||||
placeholder="请输入"
|
||||
disabled
|
||||
/>
|
||||
</view>
|
||||
|
||||
<view class="form-item required">
|
||||
<label class="form-label">帮扶方式</label>
|
||||
<view class="form-select-wrapper" style="position: relative;">
|
||||
|
||||
<!-- 显示区域 -->
|
||||
<view
|
||||
class="form-value"
|
||||
style="width: 100%;"
|
||||
@click="showDemandTypePicker = !showDemandTypePicker"
|
||||
:class="!serviceForm.demandType ? 'noValue' : ''"
|
||||
>
|
||||
{{ getDemandTypeLabel(serviceForm.demandType) || "请选择" }}
|
||||
</view>
|
||||
|
||||
<!-- 选项列表 -->
|
||||
<view
|
||||
v-if="showDemandTypePicker"
|
||||
class="options-list"
|
||||
style="position: absolute; top: 45px; left: 0; right: 0; background-color: #fff; border: 1px solid #e6e6e6; border-radius: 8rpx; z-index: 1000; max-height: 200px; overflow-y: auto;"
|
||||
>
|
||||
<view
|
||||
v-for="option in demandTypeOptions"
|
||||
:key="option.value"
|
||||
@click="selectDemandType(option.value)"
|
||||
style="padding: 10px; border-bottom: 1px solid #f0f0f0; cursor: pointer;"
|
||||
>
|
||||
{{ getDemandTypeLabel(serviceForm.demandType) || "请选择" }}
|
||||
<span class="arrow-down">▼</span>
|
||||
</div>
|
||||
|
||||
<!-- 选项列表 -->
|
||||
<div
|
||||
v-if="showDemandTypePicker"
|
||||
class="options-list"
|
||||
style="position: absolute; top: 45px; left: 0; right: 0; background-color: #fff; border: 1px solid #e6e6e6; border-radius: 8rpx; z-index: 1000; max-height: 200px; overflow-y: auto;"
|
||||
>
|
||||
<div
|
||||
v-for="option in demandTypeOptions"
|
||||
:key="option.value"
|
||||
@click="selectDemandType(option.value)"
|
||||
style="padding: 10px; border-bottom: 1px solid #f0f0f0; cursor: pointer;"
|
||||
>
|
||||
{{ option.label }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-item required" v-if="serviceForm.demandType == '4' || serviceForm.demandType == '5'">
|
||||
<label class="form-label">帮扶时间 <text class="required">*</text></label>
|
||||
<picker mode="date" :value="serviceForm.practicalSolutionTime" start="1900-01-01" end="2100-12-31" @change="onDateChange">
|
||||
<view class="date-picker-wrapper" :class="{ noValue: !serviceForm.practicalSolutionTime }">
|
||||
<view v-if="serviceForm.practicalSolutionTime" class="date-value">{{ serviceForm.practicalSolutionTime }}</view>
|
||||
<view v-else>请选择</view>
|
||||
<view class="icon-right">✏️</view>
|
||||
{{ option.label }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="form-item required" v-if="serviceForm.demandType">
|
||||
<label class="form-label">帮扶时间 <text class="required">*</text></label>
|
||||
<picker style="width: 100%;" mode="date" :value="serviceForm.practicalSolutionTime" start="1900-01-01" end="2100-12-31" @change="onDateChange">
|
||||
<view class="date-picker-wrapper" :class="{ noValue: !serviceForm.practicalSolutionTime }">
|
||||
<view v-if="serviceForm.practicalSolutionTime" class="date-value">{{ serviceForm.practicalSolutionTime }}</view>
|
||||
<view v-else>请选择</view>
|
||||
<view class="arrow-down">▼</view>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
|
||||
<view class="form-item required" v-if="serviceForm.demandType">
|
||||
<label class="form-label">经办人</label>
|
||||
<view class="form-select-wrapper">
|
||||
<uni-data-select
|
||||
style="width: 100%"
|
||||
v-model="serviceForm.agentUserId"
|
||||
placeholder="请选择经办人"
|
||||
:localdata="jingbrList1"
|
||||
@change="handleAgentChange"
|
||||
>
|
||||
</uni-data-select>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="form-item required" v-if="serviceForm.demandType == '5'">
|
||||
<label class="form-label">电话沟通结果</label>
|
||||
<view class="form-value" @click="showPicker('dhgtjg')" :class="{ noValue: !serviceForm.dhgtjg }">
|
||||
<view style="flex-grow: 1;">{{ getDhgtjgLabel(serviceForm.dhgtjg) || "请选择" }}</view>
|
||||
<text class="arrow-down">▼</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="form-item required" v-if="serviceForm.demandType">
|
||||
<label class="form-label">帮扶内容</label>
|
||||
<view class="date-picker-wrapper" :class="{ noValue: !serviceForm.serviceContent }">
|
||||
<picker
|
||||
@change="onServiceContentChange"
|
||||
:range="serviceContentOptions.map(item => item.label)"
|
||||
:value="getServiceContentIndex(serviceForm.serviceContent)"
|
||||
mode="selector"
|
||||
>
|
||||
<view class="date-value">
|
||||
<view style="flex-grow: 1;">{{ getServiceContentLabel(serviceForm.serviceContent) || "请选择" }}</view>
|
||||
<text class="arrow-down">▼</text>
|
||||
</view>
|
||||
</picker>
|
||||
</div>
|
||||
|
||||
<div class="form-item required" v-if="serviceForm.demandType == '4' || serviceForm.demandType == '5'">
|
||||
<label class="form-label">经办人</label>
|
||||
<div class="form-select-wrapper">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="serviceForm.agentUserId"
|
||||
placeholder="请选择经办人"
|
||||
@change="handleAgentChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in jingbrList1"
|
||||
:key="item.userId"
|
||||
:label="item.nickName"
|
||||
:value="item.userId"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-item required" v-if="serviceForm.demandType == '5'">
|
||||
<label class="form-label">电话沟通结果</label>
|
||||
<div class="form-value" @click="showPicker('dhgtjg')" :class="{ noValue: !serviceForm.dhgtjg }">
|
||||
{{ getDhgtjgLabel(serviceForm.dhgtjg) || "请选择" }}
|
||||
<span class="arrow-down">▼</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-item required" v-if="serviceForm.demandType == '4' || serviceForm.demandType == '5'">
|
||||
<label class="form-label">帮扶内容</label>
|
||||
<div class="date-picker-wrapper" :class="{ noValue: !serviceForm.serviceContent }">
|
||||
<picker
|
||||
@change="onServiceContentChange"
|
||||
:range="serviceContentOptions.map(item => item.label)"
|
||||
:value="getServiceContentIndex(serviceForm.serviceContent)"
|
||||
mode="selector"
|
||||
>
|
||||
<view class="date-value">
|
||||
{{ getServiceContentLabel(serviceForm.serviceContent) || "请选择" }}
|
||||
<span class="arrow-down">▼</span>
|
||||
</view>
|
||||
</picker>
|
||||
</div>
|
||||
</div>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="inner-part">
|
||||
<div class="form-item required" v-if="serviceForm.demandType == '4' || serviceForm.demandType == '5'">
|
||||
<label class="form-label">帮扶情况说明</label>
|
||||
<textarea
|
||||
v-model="serviceForm.blqksm"
|
||||
style="width: 100%; border: none; padding: 10px 0; min-height: 100px; resize: none;"
|
||||
placeholder="请输入"
|
||||
></textarea>
|
||||
</div>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
<view class="inner-part">
|
||||
<div class="form-item required" v-if="serviceForm.demandType == '4' || serviceForm.demandType == '5'">
|
||||
<label class="form-label">帮扶情况说明</label>
|
||||
<div class="file-upload-container">
|
||||
<button class="upload-btn" @click="chooseImages" :disabled="fileList.length >= 6">
|
||||
+ 添加图片 ({{ fileList.length }}/6)
|
||||
</button>
|
||||
<div class="file-list" v-if="fileList.length > 0">
|
||||
<div v-for="(file, index) in fileList" :key="index" class="file-item">
|
||||
<image :src="file.url" mode="aspectFill" class="uploaded-image"></image>
|
||||
<span class="delete-btn" @click="removeImage(index)">删除</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<view class="inner-part" v-if="serviceForm.demandType == '4' || serviceForm.demandType == '5'">
|
||||
<div class="form-item">
|
||||
<label class="form-label">附件</label>
|
||||
<div style="width: 100%; padding: 10px 0;">
|
||||
<button @click="triggerFileUpload" style="padding: 8px 16px; background: #f0f0f0; border: none; border-radius: 4px;">
|
||||
上传附件 (最多6个)
|
||||
</button>
|
||||
<!-- 简单的文件列表显示 -->
|
||||
<div v-if="serviceForm.fileUrl.length > 0" class="file-list">
|
||||
<div v-for="(file, index) in serviceForm.fileUrl" :key="index" class="file-item">
|
||||
{{ file.name }}
|
||||
<span @click="removeFile(index)" style="margin-left: 10px; cursor: pointer; color: #ff4444;">删除</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- v-if="serviceForm.demandType" -->
|
||||
<view class="form-item required" v-if="serviceForm.demandType">
|
||||
<label class="form-label">人员状态</label>
|
||||
<view class="date-picker-wrapper" :class="{ noValue: !serviceForm.personStatus }">
|
||||
<picker
|
||||
@change="onpersonStatusChange"
|
||||
:range="personStatusOptions.map(item => item.label)"
|
||||
:value="getpersonStatusIndex(serviceForm.personStatus)"
|
||||
mode="selector"
|
||||
>
|
||||
<view class="date-value">
|
||||
<view style="flex-grow: 1;">{{ getpersonStatusLabel(serviceForm.personStatus) || "请选择" }}</view>
|
||||
<text class="arrow-down">▼</text>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
</view>
|
||||
</div>
|
||||
</view>
|
||||
|
||||
<view class="inner-part" v-if="serviceForm.demandType">
|
||||
<view class="form-item required" v-if="serviceForm.demandType">
|
||||
<label class="form-label">帮扶情况说明</label>
|
||||
<textarea
|
||||
v-model="serviceForm.blqksm"
|
||||
style="width: 100%; border: none; padding: 10px 0; min-height: 100px; resize: none;"
|
||||
placeholder="请输入"
|
||||
></textarea>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="inner-part" v-if="serviceForm.demandType">
|
||||
<view class="form-item">
|
||||
<label class="form-label">附件</label>
|
||||
<view style="width: 100%; padding: 10px 0;">
|
||||
<button @click="chooseFiles" style="padding: 0px 24rpx; border: 1px solid #e4e4e4;border-radius: 4px;">
|
||||
上传附件 (最多6个)
|
||||
</button>
|
||||
<!-- 简单的文件列表显示 -->
|
||||
<view class="file-list">
|
||||
<view v-for="(file, index) in fileList" :key="index" class="file-item">
|
||||
{{ file.file.name }}
|
||||
<text @click="removeFile(index)" style="margin-left: 10px; cursor: pointer; color: #ff4444;">删除</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
||||
@@ -182,40 +152,43 @@
|
||||
</view>
|
||||
|
||||
<!-- 通用选择器 -->
|
||||
<div v-if="currentPicker" class="datetime-picker-overlay">
|
||||
<div class="datetime-picker">
|
||||
<div class="picker-header">
|
||||
<span @click="cancelPicker" style="padding: 10px;">取消</span>
|
||||
<span style="font-weight: bold;">{{ getPickerTitle(currentPicker) }}</span>
|
||||
<span @click="confirmPicker" style="padding: 10px; color: #007AFF;">确定</span>
|
||||
</div>
|
||||
<div class="picker-content">
|
||||
<div v-if="currentPicker === 'practicalSolutionTime'">
|
||||
<view v-if="currentPicker" class="datetime-picker-overlay">
|
||||
<view class="datetime-picker">
|
||||
<view class="picker-header">
|
||||
<text @click="cancelPicker" style="padding: 10px;">取消</text>
|
||||
<text style="font-weight: bold;">{{ getPickerTitle(currentPicker) }}</text>
|
||||
<text @click="confirmPicker" style="padding: 10px; color: #007AFF;">确定</text>
|
||||
</view>
|
||||
<view class="picker-content">
|
||||
<view v-if="currentPicker === 'practicalSolutionTime'">
|
||||
<input
|
||||
type="datetime-local"
|
||||
v-model="manualDateTime"
|
||||
style="width: 100%; padding: 15px; box-sizing: border-box;"
|
||||
/>
|
||||
</div>
|
||||
<div v-else class="picker-options">
|
||||
<div
|
||||
</view>
|
||||
<view v-else class="picker-options">
|
||||
<view
|
||||
v-for="option in getPickerOptions(currentPicker)"
|
||||
:key="option.value"
|
||||
@click="selectPickerOption(option.value)"
|
||||
:class="{ 'selected': selectedOption === option.value }"
|
||||
>
|
||||
{{ option.label }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getJbrInfo} from "../../api/personinfo/index"
|
||||
import { getDicts } from '@/apiRc/system/dict.js';
|
||||
import {getJbrInfo} from "@/packageRc/apiRc/personinfo/index"
|
||||
import {addInvestigate} from "@/packageRc/apiRc/needs/person"
|
||||
import { getDicts } from '@/packageRc/apiRc/system/dict.js';
|
||||
import config from '@/utilsRc/config.js'
|
||||
import { getToken } from "@/utilsRc/auth";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -233,6 +206,14 @@ export default {
|
||||
fileUrl: [] // 附件
|
||||
},
|
||||
|
||||
personStatusMap: {
|
||||
'1': '就业政策咨询',
|
||||
'2': '职业指导',
|
||||
'3': '技能培训',
|
||||
'4': '岗位推荐',
|
||||
'5': '创业指导',
|
||||
'6': '其他'
|
||||
},
|
||||
serviceContentMap: {
|
||||
'1': '就业政策咨询',
|
||||
'2': '职业指导',
|
||||
@@ -291,6 +272,15 @@ export default {
|
||||
}));
|
||||
}
|
||||
});
|
||||
getDicts('qyjy_dhgtjg').then(res => {
|
||||
if (res.data && Array.isArray(res.data)) {
|
||||
// 将字典数据转换为picker组件需要的格式
|
||||
this.dhgtjgOptions = res.data.map(item => ({
|
||||
value: item.dictValue,
|
||||
label: item.dictLabel
|
||||
}));
|
||||
}
|
||||
});
|
||||
|
||||
// 使用getDicts API获取人员状态字典数据
|
||||
getDicts('qcjy_ryzt').then(res => {
|
||||
@@ -312,27 +302,93 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
// 选择图片
|
||||
chooseImages() {
|
||||
chooseFiles() {
|
||||
const remainingCount = 6 - this.fileList.length;
|
||||
if (remainingCount <= 0) {
|
||||
uni.showToast({ title: '最多只能上传6张图片', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
|
||||
uni.chooseImage({
|
||||
console.log(wx, 'wx')
|
||||
wx.chooseMessageFile({
|
||||
count: remainingCount,
|
||||
sizeType: ['original', 'compressed'],
|
||||
sourceType: ['album', 'camera'],
|
||||
success: (res) => {
|
||||
// 添加新选择的图片到列表
|
||||
res.tempFilePaths.forEach((path, index) => {
|
||||
this.fileList.push({
|
||||
url: path,
|
||||
file: res.tempFiles[index]
|
||||
});
|
||||
});
|
||||
extension: ['.png', '.jpg', '.jpeg', '.doc', '.docx', '.pdf', '.xls', '.xlsx' ],
|
||||
success: (res) => {
|
||||
console.log('选择文件成功:', res);
|
||||
let arr = [];
|
||||
|
||||
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 (['png', 'jpg', 'jpeg', 'doc', 'docx', 'pdf', 'xls', 'xlsx' ].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 ' + getToken(),
|
||||
},
|
||||
success: (res) => {
|
||||
var data = JSON.parse(res.data);
|
||||
console.log(data, 'sdfjiosdjfoi')
|
||||
if(data.code==200) {
|
||||
this.fileList.push({
|
||||
url: data.data.url,
|
||||
file: file
|
||||
})
|
||||
this.serviceForm.fileUrl = this.fileList.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: `只能选择${['.png', '.jpg', '.jpeg', '.doc', '.docx', '.pdf', '.xls', '.xlsx' ].join('、')}格式文件`,
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
// // 添加新选择的图片到列表
|
||||
// res.tempFiles.forEach((item, index) => {
|
||||
// this.fileList.push({
|
||||
// url: item.path,
|
||||
// file: res.tempFiles[index]
|
||||
// });
|
||||
// });
|
||||
// 更新 serviceForm.fileUrl
|
||||
this.updateFileUrls();
|
||||
// this.updateFileUrls();
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error('选择图片失败:', err);
|
||||
@@ -351,9 +407,16 @@ export default {
|
||||
updateFileUrls() {
|
||||
this.serviceForm.fileUrl = this.fileList.map(file => file.url);
|
||||
},
|
||||
async getJbrInfo11(){
|
||||
const res=await getJbrInfo()
|
||||
this.jingbrList1=res
|
||||
getJbrInfo11(){
|
||||
getJbrInfo().then(res => {
|
||||
console.log(res, 'joisdfjiosdfjio')
|
||||
this.jingbrList1=res.map(ele => {
|
||||
return {
|
||||
value: ele.userId,
|
||||
text: ele.nickName
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
// 显示选择器
|
||||
showPicker(type) {
|
||||
@@ -374,7 +437,7 @@ export default {
|
||||
this.serviceForm[this.currentPicker] = this.selectedOption;
|
||||
// 特殊处理经办人,同时保存名称
|
||||
if (this.currentPicker === 'agentUserId') {
|
||||
const agent = this.jingbrList1.find(item => item.userId === this.selectedOption);
|
||||
const agent = this.jingbrList1.find(item => item.value === this.selectedOption);
|
||||
this.serviceForm.agentUserName = agent ? agent.nickName : '';
|
||||
}
|
||||
}
|
||||
@@ -413,7 +476,7 @@ export default {
|
||||
},
|
||||
// 获取经办人名称
|
||||
getAgentUserName(userId) {
|
||||
const agent = this.jingbrList1.find(item => item.userId === userId);
|
||||
const agent = this.jingbrList1.find(item => item.value === userId);
|
||||
return agent ? agent.nickName : '';
|
||||
},
|
||||
// 处理经办人选择变化
|
||||
@@ -422,7 +485,7 @@ export default {
|
||||
this.serviceForm.agentUserName = '';
|
||||
return;
|
||||
}
|
||||
const user = this.jingbrList1.find(item => item.userId === value);
|
||||
const user = this.jingbrList1.find(item => item.value === value);
|
||||
if (user) {
|
||||
this.serviceForm.agentUserName = user.nickName;
|
||||
} else {
|
||||
@@ -449,6 +512,11 @@ export default {
|
||||
getServiceContentLabel(value) {
|
||||
return this.serviceContentMap[value] || '';
|
||||
},
|
||||
// 获取帮扶内容标签
|
||||
getpersonStatusLabel(value) {
|
||||
let arr = this.personStatusOptions.filter(item => item.value == value)
|
||||
return arr.length ? arr[0].label : ''
|
||||
},
|
||||
|
||||
// 处理帮扶内容选择变化
|
||||
onServiceContentChange(e) {
|
||||
@@ -457,6 +525,13 @@ export default {
|
||||
this.serviceForm.serviceContent = this.serviceContentOptions[index].value;
|
||||
}
|
||||
},
|
||||
// 处理人员状态选择变化
|
||||
onpersonStatusChange(e) {
|
||||
const index = e.detail.value;
|
||||
if (this.personStatusOptions && this.personStatusOptions[index]) {
|
||||
this.serviceForm.personStatus = this.personStatusOptions[index].value;
|
||||
}
|
||||
},
|
||||
|
||||
// 获取帮扶内容当前索引
|
||||
getServiceContentIndex(value) {
|
||||
@@ -464,6 +539,11 @@ export default {
|
||||
const index = this.serviceContentOptions.findIndex(item => item.value === value);
|
||||
return index !== -1 ? index : 0;
|
||||
},
|
||||
getpersonStatusIndex(value) {
|
||||
if (!value) return 0;
|
||||
const index = this.personStatusOptions.findIndex(item => item.value === value);
|
||||
return index !== -1 ? index : 0;
|
||||
},
|
||||
// 格式化日期时间为YYYY-MM-DDTHH:MM格式(datetime-local输入框需要)
|
||||
formatDateTime(date) {
|
||||
const year = date.getFullYear();
|
||||
@@ -574,17 +654,23 @@ export default {
|
||||
const submitData = {
|
||||
...this.serviceForm,
|
||||
// 格式化文件数据
|
||||
fileUrl: JSON.stringify(this.serviceForm.fileUrl)
|
||||
// fileUrl: JSON.stringify(this.serviceForm.fileUrl)
|
||||
fileUrl: this.fileList.map(item => item.url).join(',')
|
||||
};
|
||||
|
||||
// 打印提交数据
|
||||
console.log('提交数据:', submitData);
|
||||
|
||||
// 模拟API调用延迟
|
||||
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||
|
||||
uni.showToast({ title: '保存成功', icon: 'success' });
|
||||
uni.navigateBack();
|
||||
// await new Promise(resolve => setTimeout(resolve, 1000));
|
||||
addInvestigate(submitData).then(res => {
|
||||
if(res.code == 200){
|
||||
uni.showToast({ title: '保存成功', icon: 'success' });
|
||||
setTimeout(() => {
|
||||
uni.navigateBack();
|
||||
}, 1000);
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
uni.showToast({ title: '保存失败', icon: 'none' });
|
||||
@@ -599,25 +685,22 @@ export default {
|
||||
<style lang="scss" scoped>
|
||||
.page {
|
||||
height: 100vh;
|
||||
background-color: #eef1f5 !important;
|
||||
background-color: #f4f4f4 !important;
|
||||
background-image: url("~@/packageRc/static/images/top.png");
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
.input-outer-part {
|
||||
background: #eef1f5;
|
||||
padding: 32rpx;
|
||||
padding-top: 100rpx; /* 增加顶部内边距,防止内容被遮挡 */
|
||||
position: relative;
|
||||
top: -80rpx;
|
||||
border-radius: 32rpx 32rpx 0 0;
|
||||
}
|
||||
|
||||
.inner {
|
||||
.inner-part {
|
||||
background: #fff;
|
||||
padding: 0 32rpx;
|
||||
padding: 24rpx 32rpx;
|
||||
border-radius: 16rpx;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
@@ -631,21 +714,21 @@ export default {
|
||||
.form-item {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
margin-bottom: 20px;
|
||||
padding-bottom: 15px;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* 选择器容器样式 */
|
||||
.form-select-wrapper {
|
||||
flex: 1;
|
||||
padding: 5px 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.form-select {
|
||||
width: 100%;
|
||||
padding: 20rpx;
|
||||
padding: 0 20rpx;
|
||||
line-height: 64rpx;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid #e6e6e6;
|
||||
border-radius: 8rpx;
|
||||
font-size: 28rpx;
|
||||
@@ -664,13 +747,13 @@ export default {
|
||||
.form-select-wrapper::after {
|
||||
content: '▼';
|
||||
position: absolute;
|
||||
right: 30rpx;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
pointer-events: none;
|
||||
color: #999;
|
||||
font-size: 20rpx;
|
||||
}
|
||||
right: 20rpx;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
pointer-events: none;
|
||||
color: #999;
|
||||
font-size: 20rpx;
|
||||
}
|
||||
|
||||
.form-item.required .form-label::after {
|
||||
content: '*';
|
||||
@@ -683,19 +766,33 @@ export default {
|
||||
flex-shrink: 0;
|
||||
font-size: 14px;
|
||||
color: #333;
|
||||
padding: 10px 0;
|
||||
height: 64rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.form-value {
|
||||
flex: 1;
|
||||
padding: 10px 0;
|
||||
height: 64rpx;
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid #e6e6e6;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0 24rpx;
|
||||
// justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
input{
|
||||
flex: 1;
|
||||
line-height: 64rpx;
|
||||
height: 64rpx;
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
|
||||
}
|
||||
|
||||
.form-value.noValue {
|
||||
color: #999;
|
||||
}
|
||||
@@ -713,11 +810,19 @@ export default {
|
||||
.form-input-wrapper {
|
||||
flex: 1;
|
||||
position: relative;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
picker{
|
||||
width: 100%;
|
||||
.date-value{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
.form-input-wrapper input {
|
||||
width: 100%;
|
||||
padding: 10px 0;
|
||||
border: none;
|
||||
outline: none;
|
||||
font-size: 14px;
|
||||
@@ -774,54 +879,6 @@ export default {
|
||||
width: 100%;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
.upload-btn {
|
||||
padding: 10px 20px;
|
||||
background-color: #f0f0f0;
|
||||
border: 1px dashed #ddd;
|
||||
border-radius: 4px;
|
||||
color: #666;
|
||||
margin-bottom: 10px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.upload-btn:disabled {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.file-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.file-item {
|
||||
position: relative;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
.uploaded-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.delete-btn {
|
||||
position: absolute;
|
||||
top: -8px;
|
||||
right: -8px;
|
||||
background-color: #ff4444;
|
||||
color: white;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/* 选择器样式 */
|
||||
.datetime-picker-overlay {
|
||||
position: fixed;
|
||||
@@ -855,12 +912,12 @@ export default {
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
.picker-header > span:first-child {
|
||||
.picker-header > text:first-child {
|
||||
color: #666;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.picker-header > span:last-child {
|
||||
.picker-header > text:last-child {
|
||||
color: #1d64cf;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
@@ -875,7 +932,7 @@ export default {
|
||||
padding: 5px 0;
|
||||
}
|
||||
|
||||
.picker-options > div {
|
||||
.picker-options > view {
|
||||
padding: 16px 20px;
|
||||
font-size: 16px;
|
||||
color: #333;
|
||||
@@ -885,22 +942,22 @@ export default {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.picker-options > div:not(:last-child) {
|
||||
.picker-options > view:not(:last-child) {
|
||||
border-bottom: 1px solid #f8f8f8;
|
||||
}
|
||||
|
||||
.picker-options > div:active {
|
||||
.picker-options > view:active {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.picker-options > div.selected {
|
||||
.picker-options > view.selected {
|
||||
background-color: #f0f7ff;
|
||||
color: #1d64cf;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* 添加选中状态的对勾图标 */
|
||||
.picker-options > div.selected::after {
|
||||
.picker-options > view.selected::after {
|
||||
content: '✓';
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
@@ -914,18 +971,22 @@ export default {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 10px;
|
||||
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-picker-wrapper.noValue {
|
||||
// background-color: #f9f9f9;
|
||||
// }
|
||||
|
||||
.date-value {
|
||||
color: #333;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.icon-right {
|
||||
|
||||
523
packageRc/pages/daiban/bangfuList.vue
Normal file
523
packageRc/pages/daiban/bangfuList.vue
Normal file
@@ -0,0 +1,523 @@
|
||||
<template>
|
||||
<view class="job-list" style="background-image: url('/packageRc/static/pageBg.png');">
|
||||
<!-- <view class="top_box_bg">
|
||||
<image src="/packageRc/static/pageBg.png" width="750rpx" height="496rpx" />
|
||||
</view> -->
|
||||
<view class="job-list__content" style="height: calc(-32rpx + 100vh)">
|
||||
<view style="display: flex; justify-content: space-between;">
|
||||
<input style="border: 1px solid #e4e4e4;height: 64rpx;padding: 0 16rpx;flex-grow: 1;border-radius: 30rpx;"
|
||||
placeholder="输入经办人姓名进行搜索"
|
||||
border="surround"
|
||||
v-model="queryParams.agentUserName"
|
||||
shape="circle"
|
||||
:customStyle="customInputStyle"
|
||||
/>
|
||||
<!-- <view slot="suffix">
|
||||
<u-icon
|
||||
@tap="handleSearch"
|
||||
name="search"
|
||||
color="#2979ff"
|
||||
size="28"
|
||||
></u-icon>
|
||||
</view> -->
|
||||
<button
|
||||
class="custom-style"
|
||||
@click="openshow"
|
||||
>{{ filterTotal > 0 ? '筛选+' + filterTotal : '筛选' }}</button>
|
||||
</view>
|
||||
<view
|
||||
v-if="total"
|
||||
style="position: relative; padding-top: 16px; color: #000"
|
||||
>
|
||||
<text>共 {{ total }} 条</text>
|
||||
</view>
|
||||
<scroll-view
|
||||
class="job-list__scroll"
|
||||
scroll-y="true"
|
||||
@scrolltolower="loadMoreJobs"
|
||||
>
|
||||
<view
|
||||
class="jobSearchListview"
|
||||
v-for="(item, index) in tableList"
|
||||
:key="item.id"
|
||||
@click="goNeedsDetail(item)"
|
||||
>
|
||||
|
||||
<view class="custom_timeline_marker">
|
||||
<view class="custom_timeline_line" :class="{ last: index === item.length - 1 }"></view>
|
||||
<view class="custom_timeline_point active"></view>
|
||||
</view>
|
||||
<view class="job-list__item inner">
|
||||
<view class="job-list__item-detail" style="margin: 0">{{ item.practicalSolutionTime }}</view>
|
||||
<div style="display: flex;justify-content: space-between;">
|
||||
<view class="job-list__item-detail" style="color: #333">{{ selectDictLabel(serviceTypeList, item.demandType) }}</view>
|
||||
<view class="job-list__item-detail">
|
||||
<text>经办人:</text>
|
||||
<text>{{ item.agentUserName || "-" }}</text>
|
||||
</view>
|
||||
</div>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<uni-popup ref="show" @close="close" @open="open" background-color="#fff" type="bottom">
|
||||
<view class="dialog_div">
|
||||
<view class="dialog_div_top">
|
||||
<view @click="close">取消</view>
|
||||
<view @click="handleSearch">确定</view>
|
||||
</view>
|
||||
<view>
|
||||
<view class="df_flex">
|
||||
<view class="text">服务类别:</view>
|
||||
<view class="df_flex_items">
|
||||
<view
|
||||
class="item"
|
||||
@click="handleServiceStatus('demandType', item)"
|
||||
:class="
|
||||
item.dictValue == queryParams.demandType ? 'item-active' : ''
|
||||
"
|
||||
v-for="item in serviceTypeList"
|
||||
:key="item.dictValue"
|
||||
>{{ item.dictLabel }}</view
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="dialog_div_btn">
|
||||
<u-button class="reset-style" text="重 置" @click="reset"></u-button>
|
||||
<u-button
|
||||
class="sure-style"
|
||||
text="确 定"
|
||||
@click="handleSearch"
|
||||
></u-button>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { timeList } from "@/packageRc/apiRc/timeLine";
|
||||
export default {
|
||||
name: "serviceRecord",
|
||||
data() {
|
||||
return {
|
||||
total: 0,
|
||||
tableList: [],
|
||||
serviceTypeList: [
|
||||
{
|
||||
dictLabel: "全部",
|
||||
dictValue: "",
|
||||
},
|
||||
],
|
||||
loading: false,
|
||||
status: "more", // 加载更多状态
|
||||
customInputStyle: {
|
||||
background: "#fff",
|
||||
height: "40rpx",
|
||||
},
|
||||
filterTotal: 0,
|
||||
show: false,
|
||||
userId:"",
|
||||
queryParams: {
|
||||
page: 1,
|
||||
size: 10,
|
||||
demandType: "",
|
||||
serviceObjectName: "",
|
||||
userId:""
|
||||
},
|
||||
};
|
||||
},
|
||||
onLoad(options) {
|
||||
this.queryParams.userId = options.userId;
|
||||
this.userId = options.userId;
|
||||
this.$getDict("qcjy_fwlx").then((res) => {
|
||||
this.serviceTypeList = this.serviceTypeList.concat(res.data);
|
||||
});
|
||||
},
|
||||
mounted() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
openshow() {
|
||||
this.$refs.show.open();
|
||||
},
|
||||
selectDictLabel(datas, value) {
|
||||
if (value === undefined) {
|
||||
return ''
|
||||
}
|
||||
var actions = []
|
||||
Object.keys(datas).some((key) => {
|
||||
if (datas[key].dictValue == ('' + value)) {
|
||||
actions.push(datas[key].dictLabel)
|
||||
return true
|
||||
}
|
||||
})
|
||||
if (actions.length === 0) {
|
||||
actions.push(value)
|
||||
}
|
||||
return actions.join('')
|
||||
},
|
||||
open() {
|
||||
// console.log('open');
|
||||
},
|
||||
reset() {
|
||||
this.queryParams = {
|
||||
page: 1,
|
||||
size: 10,
|
||||
demandType: "",
|
||||
serviceObjectName: "",
|
||||
userId:this.userId
|
||||
};
|
||||
this.filterTotal = 0;
|
||||
},
|
||||
close() {
|
||||
this.$refs.show.close();
|
||||
// console.log('close');
|
||||
},
|
||||
goNeedsDetail(item) {
|
||||
let needsType = "";
|
||||
// 走访调查和电话沟通,统一页面,不查需求
|
||||
if (item.demandType == 4||item.demandType == 5) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/community/investigationDetails?id=${item.id}`,
|
||||
});
|
||||
} else {
|
||||
if (item.demandType == 1) {
|
||||
needsType = 1;
|
||||
}
|
||||
if (item.demandType == 2) {
|
||||
needsType = 3;
|
||||
}
|
||||
if (item.demandType == 3) {
|
||||
needsType = 4;
|
||||
}
|
||||
if (item.demandType == 9) {
|
||||
needsType = 5;
|
||||
}
|
||||
|
||||
uni.navigateTo({
|
||||
url: `/packageRc/pages/needs/needDetail?id=${item.businessId}&type=${needsType}&showTab=1`,
|
||||
});
|
||||
}
|
||||
},
|
||||
handleServiceStatus(label, item) {
|
||||
this.filterTotal = 0;
|
||||
this.queryParams[label] = item.dictValue;
|
||||
for (const key in this.queryParams) {
|
||||
if (key == "demandType" || key == "personType" || key == "gender") {
|
||||
this.filterTotal += this.queryParams[key] ? 1 : 0;
|
||||
}
|
||||
}
|
||||
},
|
||||
// 加载更多
|
||||
loadMoreJobs() {
|
||||
if (this.tableList.length >= this.total || this.status === "noMore")
|
||||
return;
|
||||
this.queryParams.pageNum += 1;
|
||||
this.getList();
|
||||
},
|
||||
// 获取列表
|
||||
async getList(reset = false) {
|
||||
if (this.loading) return;
|
||||
this.loading = true;
|
||||
|
||||
// 重置数据
|
||||
if (reset) {
|
||||
this.tableList = [];
|
||||
this.queryParams.pageNum = 1;
|
||||
}
|
||||
const { code, rows, total } = await timeList(this.queryParams);
|
||||
if (code === 200) {
|
||||
this.tableList = [...this.tableList, ...rows];
|
||||
this.tableList.forEach((element) => {
|
||||
this.$set(element, "isEye", false);
|
||||
});
|
||||
this.total = total;
|
||||
this.status = this.tableList.length >= this.total ? "noMore" : "more";
|
||||
}
|
||||
this.loading = false;
|
||||
},
|
||||
// 搜索功能处理
|
||||
handleSearch() {
|
||||
console.log(this.queryParams,"查询参数")
|
||||
this.show = false;
|
||||
this.$refs.show.close();
|
||||
this.getList(true);
|
||||
},
|
||||
getTimeList() {
|
||||
timeList(this.queryParams).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.tableList = res.rows;
|
||||
this.total = res.total;
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.job-list__content {
|
||||
overflow: auto;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.job-list {
|
||||
padding:32rpx;
|
||||
background-color: #f4f4f4;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
background-repeat: no-repeat;
|
||||
&__navbar {
|
||||
height: 80rpx;
|
||||
}
|
||||
|
||||
&__content {
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
padding: 32rpx;
|
||||
z-index: 10;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
border-radius: 32rpx 32rpx 0 0;
|
||||
border: 1px solid #fff;
|
||||
}
|
||||
|
||||
&__scroll {
|
||||
margin-top: 10rpx;
|
||||
height: calc(100vh - 320rpx);
|
||||
}
|
||||
|
||||
&__item {
|
||||
position: relative;
|
||||
padding: 32rpx;
|
||||
background-color: #d0dcee;
|
||||
border-radius: 16rpx;
|
||||
font-size: 28rpx;
|
||||
|
||||
.tips {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
min-width: 40rpx;
|
||||
padding: 0 24rpx;
|
||||
height: 40rpx;
|
||||
line-height: 40rpx;
|
||||
color: #1ace62;
|
||||
border-radius: 0px 16rpx 0px 16rpx;
|
||||
background-color: #d9f9ed;
|
||||
border: 1px solid #58e6a2;
|
||||
}
|
||||
}
|
||||
|
||||
&__item-detail {
|
||||
margin-top: 20rpx;
|
||||
color: #8e8e8e;
|
||||
|
||||
view,
|
||||
text:last-child {
|
||||
margin-left: 10rpx;
|
||||
color: #333;
|
||||
}
|
||||
}
|
||||
|
||||
.tab_list {
|
||||
margin-top: 30rpx;
|
||||
height: 86rpx;
|
||||
color: #ce6b1a;
|
||||
border-top: 1px solid #eff2f6;
|
||||
}
|
||||
|
||||
.items {
|
||||
margin-top: 30rpx;
|
||||
border-top: 1px solid #d0dcee;
|
||||
}
|
||||
|
||||
.post_job_btn {
|
||||
position: fixed;
|
||||
bottom: 120rpx;
|
||||
right: 16rpx;
|
||||
width: 150rpx;
|
||||
height: 150rpx;
|
||||
border-radius: 50%;
|
||||
z-index: 20;
|
||||
background: url("https://rc.jinan.gov.cn/qcwjyH5/static/images/addPersonnel.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
.dialog_form {
|
||||
padding: 30rpx;
|
||||
width: 80vw;
|
||||
|
||||
.tadio {
|
||||
height: 100rpx;
|
||||
}
|
||||
|
||||
.btn {
|
||||
margin-top: 100rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.jobSearchListview {
|
||||
margin-top: 20rpx;
|
||||
width: 100%;
|
||||
// padding: 30rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.inner{
|
||||
flex-grow: 1;flex-shrink: 1;
|
||||
border-radius: 8px;
|
||||
// background: #ffffff;
|
||||
}
|
||||
.custom_timeline_marker {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-right: 40rpx;
|
||||
// width: 16rpx;
|
||||
|
||||
/* 虚线样式 */
|
||||
.custom_timeline_line {
|
||||
position: absolute;
|
||||
width: 4rpx;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
height: 160rpx;
|
||||
background: repeating-linear-gradient(to bottom,
|
||||
#76A0DF 0px,
|
||||
#76A0DF 8rpx,
|
||||
transparent 8rpx,
|
||||
transparent 16rpx);
|
||||
|
||||
&.last {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.custom_timeline_point {
|
||||
z-index: 1;
|
||||
/* 确保点覆盖在线条之上 */
|
||||
width: 16rpx;
|
||||
height: 16rpx;
|
||||
background-color: #fff;
|
||||
border-radius: 50%;
|
||||
border: 10rpx solid #e0e0e0;
|
||||
|
||||
&.active {
|
||||
border: 10rpx solid #007aff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.jobSearchListview_currentStatus {
|
||||
position: absolute;
|
||||
right: 40rpx;
|
||||
top: 40rpx;
|
||||
}
|
||||
.jobSearchListview_name {
|
||||
font-size: 38rpx;
|
||||
font-weight: bold;
|
||||
color: #282828;
|
||||
}
|
||||
.salaryExpectation {
|
||||
margin-top: 20rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.salary {
|
||||
font-size: 38rpx;
|
||||
font-weight: bold;
|
||||
color: #fa6553;
|
||||
}
|
||||
}
|
||||
}
|
||||
.job-list__item-btn {
|
||||
height: 60rpx;
|
||||
margin-top: 40rpx;
|
||||
border-top: 1px solid #eee;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
color: #1a62ce;
|
||||
font-size: 26rpx;
|
||||
.btn {
|
||||
width: 50%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
}
|
||||
.custom-style {
|
||||
background-color: #4d89e3;
|
||||
width: 150rpx;
|
||||
color: #fff;
|
||||
margin-left: 30rpx;
|
||||
line-height: 64rpx;
|
||||
font-size: 24rpx;
|
||||
border: 1px solid #1a62ce;
|
||||
border-radius: 50px;
|
||||
}
|
||||
.dialog_div {
|
||||
.dialog_div_top {
|
||||
height: 100rpx;
|
||||
border-bottom: 1px solid #e6e6e6;
|
||||
padding: 30rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
color: #077dfe;
|
||||
}
|
||||
.df_flex_items {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex: 1;
|
||||
}
|
||||
.df_flex {
|
||||
display: flex;
|
||||
margin-top: 30rpx;
|
||||
margin-left: 30rpx;
|
||||
.text {
|
||||
width: 140rpx;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.item-active {
|
||||
background: linear-gradient(90deg, #1a62ce 0%, #1d8ace 100%) !important;
|
||||
color: #fff;
|
||||
}
|
||||
.item {
|
||||
background: #f2f4f7;
|
||||
margin: 0 20rpx;
|
||||
margin-bottom: 10rpx;
|
||||
padding: 10rpx 20rpx;
|
||||
border-radius: 8px;
|
||||
}
|
||||
}
|
||||
.dialog_div_btn {
|
||||
display: flex;
|
||||
margin: 40rpx;
|
||||
.reset-style {
|
||||
width: 200rpx;
|
||||
background: #ffffff;
|
||||
margin-right: 40rpx;
|
||||
color: #3d3d3d;
|
||||
}
|
||||
.sure-style {
|
||||
background: linear-gradient(270deg, #4370e5 0%, #53a0ea 100%);
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.describe {
|
||||
//最多显示两行
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
}
|
||||
</style>
|
||||
@@ -1,7 +1,7 @@
|
||||
<!--
|
||||
* @Date: 2025-10-16 15:15:47
|
||||
* @LastEditors: shirlwang
|
||||
* @LastEditTime: 2025-10-31 14:56:32
|
||||
* @LastEditTime: 2025-11-06 16:09:23
|
||||
-->
|
||||
<template>
|
||||
<view>
|
||||
@@ -11,17 +11,17 @@
|
||||
<view class="kinggang">
|
||||
<view>
|
||||
<view class="num-title" style="color: #1A62CE">重点毕业生数</view>
|
||||
<view>1120</view>
|
||||
<view>{{infoData.allPersonCount}}</view>
|
||||
</view>
|
||||
<text style="color: #B5C1D1;">|</text>
|
||||
<view>
|
||||
<view class="num-title" style="color: #16ACB7">累计需求数</view>
|
||||
<view>1120</view>
|
||||
<view>{{infoData.demandNum}}</view>
|
||||
</view>
|
||||
<text style="color: #B5C1D1;">|</text>
|
||||
<view>
|
||||
<view class="num-title" style="color: #6A57D1">累计服务数</view>
|
||||
<view>1120</view>
|
||||
<view>{{infoData.fwNum}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="trace-line">
|
||||
@@ -35,7 +35,7 @@
|
||||
<uni-icons color="#639AEB" type="arrow-right" size="16"></uni-icons>
|
||||
</view>
|
||||
</view>
|
||||
<view class="sendManager">
|
||||
<!-- <view class="sendManager">
|
||||
<view class="title">
|
||||
<image src="../../../packageRc/static/sendManager.png"/>
|
||||
任务下发管理员
|
||||
@@ -44,22 +44,23 @@
|
||||
<view>点击查看</view>
|
||||
<uni-icons color="#DBAA4E" type="arrow-right" size="16"></uni-icons>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
<view class="titles">
|
||||
<view class="title-item active"><view>待办需求预警列表</view></view>
|
||||
<view>共 {{jobList1count}}条信息</view>
|
||||
</view>
|
||||
<view v-for="(item, index) in jobList1" :key="index" class="job-list">
|
||||
<view class="title">销售顾问</view>
|
||||
<view v-for="(item, index) in jobList1" :key="index" class="job-list" @click="toNeedDetail(item)">
|
||||
<view class="title">{{ item.personName }} {{ item.deptName }}</view>
|
||||
<view class="info">
|
||||
待办内容文字示例待办内容文字示例待办内容文字示例待办内容文字示例
|
||||
{{getDictLabel(item.demandType, qcjy_xqlx)}}_{{ item.jobDescription }}
|
||||
</view>
|
||||
<view class="bottom-line">
|
||||
<view>发起时间:2025-09-24 15:02</view>
|
||||
<view style="color: #EF7325;">青岛xx公司</view>
|
||||
<view>发起时间:{{item.createTime}}</view>
|
||||
<view style="color: #EF7325;">{{getDictLabel(item.currentStatus, qcjy_xqlc)}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="view-more-btn" @click="viewMore">查看更多内容</view>
|
||||
<view class="titles">
|
||||
<view class="title-item active"><view>待服务毕业生列表</view></view>
|
||||
<view>共 {{jobListcount}} 条信息</view>
|
||||
@@ -70,24 +71,29 @@
|
||||
<image v-else src="../../../packageRc/static/personIconFe.png"/>
|
||||
<view class="top-right">
|
||||
<view class="name-line">
|
||||
<view class="name">姓名<view class="tag">{{item.name}}</view></view>
|
||||
<view class="service-status">·未服务</view>
|
||||
<view class="name">{{item.name}}<view class="tag">{{item.zy}}</view></view>
|
||||
<view class="service-status" v-if="item.fwzt == 0">•未服务</view>
|
||||
<view class="service-status" v-if="item.fwzt == 1">•已服务</view>
|
||||
<view class="service-status" v-if="item.fwzt == 2">•联系不上</view>
|
||||
<view class="service-status" v-if="item.fwzt == 3">•拒绝服务</view>
|
||||
<view class="service-status" v-if="item.isReturn == 1">•被退回</view>
|
||||
</view>
|
||||
<view class="info-line" style="display: flex;">
|
||||
<view style="margin-right: 24rpx;"><text>年龄:</text>27岁</view>
|
||||
<view><text>服务次数:</text>1次</view>
|
||||
<view style="margin-right: 24rpx;"><text>年龄:</text>{{item.age}}岁</view>
|
||||
<view><text>服务次数:</text>{{item.operateNum}}次</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="info-line">
|
||||
<view><text>联系电话:</text>152****5488</view>
|
||||
<view><text>联系电话:</text>{{item.phone || '--'}}</view>
|
||||
<view><text>详细地址:</text>{{item.xxdz}}</view>
|
||||
</view>
|
||||
<view class="services">
|
||||
<view @click="showReturnReasonPopup(item.id)">退回</view>
|
||||
<view @click="tiao(item.id,item.name)">服务</view>
|
||||
<view @click="tiao(item)">服务</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="view-more-btn" @click="goPersonalList">查看更多内容</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
||||
@@ -133,21 +139,50 @@ function goPersonalList() {
|
||||
url: '/packageRc/pages/personalList/personalList'
|
||||
});
|
||||
}
|
||||
function toNeedDetail(item) {
|
||||
let demandType = item.demandType == 1 ? 1 : item.demandType == 2 ? 3 :item.demandType == 3 ? 4 :item.demandType == 9 ? 5 : '';
|
||||
console.log('toNeedDetail', demandType)
|
||||
uni.navigateTo({
|
||||
url: `/packageRc/pages/needs/needDetail?showTab=1&type=${demandType}&id=${item.id}&name=${item.personName}`
|
||||
// url: `/packageRc/pages/demand/demandail?showTab=1&type=${demandType}&id=${item.id}&name=${item.personName}`
|
||||
});
|
||||
};
|
||||
function back() {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
});
|
||||
|
||||
};
|
||||
function viewMore() {
|
||||
uni.navigateTo({
|
||||
url: '/packageRc/pages/needs/needsList'
|
||||
});
|
||||
}
|
||||
let qcjy_xqlx = ref([])
|
||||
let qcjy_xqlc = ref([])
|
||||
let infoData = ref({})
|
||||
import {getDicts} from '@/packageRc/apiRc/system/dict'
|
||||
import {getStatistic} from '@/packageRc/apiRc/personinfo/index'
|
||||
onMounted(() => {
|
||||
getlist();
|
||||
getlistyujing();
|
||||
getDicts('qcjy_xqlx').then(res => {
|
||||
qcjy_xqlx.value = res.data
|
||||
});
|
||||
getDicts('qcjy_xqlc').then(res => {
|
||||
qcjy_xqlc.value = res.data
|
||||
});
|
||||
getStatistic().then(res => {
|
||||
infoData.value = res.data
|
||||
})
|
||||
});
|
||||
|
||||
function getDictLabel(value, list) {
|
||||
const item = list.find(item => item.dictValue === value);
|
||||
return item ? item.dictLabel : '';
|
||||
}
|
||||
async function getlist(){
|
||||
|
||||
try {
|
||||
const res = await personInfoList();
|
||||
const res = await personInfoList({pageNum: 1, pageSize: 5})
|
||||
console.log("res", res);
|
||||
jobList.value = res.rows || [];
|
||||
jobListcount.value=res.total || 0
|
||||
@@ -159,7 +194,7 @@ async function getlist(){
|
||||
async function getlistyujing(){
|
||||
|
||||
try {
|
||||
const res = await personAlertList();
|
||||
const res = await personAlertList({pageNum: 1, pageSize: 5});
|
||||
console.log("res", res);
|
||||
jobList1.value = res.rows || [];
|
||||
jobList1count.value=res.total || 0
|
||||
@@ -180,11 +215,11 @@ function showReturnReasonPopup(dd) {
|
||||
}
|
||||
}
|
||||
|
||||
function tiao(id,name){
|
||||
console.log('尝试导航到待办详情页面,ID:', id);
|
||||
function tiao(item){
|
||||
console.log('尝试导航到待办详情页面,ID:', item.id, item.userId);
|
||||
// 尝试直接使用uni.navigateTo,使用正确的格式并传递id参数
|
||||
uni.navigateTo({
|
||||
url: `/packageRc/pages/daiban/daibandetail?id=${id}&name=${name}`,
|
||||
url: `/packageRc/pages/daiban/daibandetail?id=${item.id}&name=${item.name}&userId=${item.userId}`,
|
||||
success: function() {
|
||||
console.log('导航成功');
|
||||
},
|
||||
@@ -235,11 +270,6 @@ function cancelReturn() {
|
||||
returnReasonPopup.value.close()
|
||||
}
|
||||
}
|
||||
function viewMore() {
|
||||
// uni.navigateTo({
|
||||
// url: '/pages/jobList/jobList'
|
||||
// })
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
@@ -360,7 +390,8 @@ view{box-sizing: border-box;display: block;}
|
||||
justify-content: space-between;
|
||||
>view{
|
||||
padding: 37.5rpx 32rpx;
|
||||
width: calc(50% - 12rpx);
|
||||
width: 100%;
|
||||
// width: calc(50% - 12rpx);
|
||||
.title{
|
||||
font-size: 28rpx;
|
||||
font-weight: bold;
|
||||
@@ -555,12 +586,14 @@ view{box-sizing: border-box;display: block;}
|
||||
border-radius: 4rpx;
|
||||
background: #4D89E3;
|
||||
color: #fff;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
}
|
||||
.service-status{
|
||||
color: #E0A61F;
|
||||
font-weight: bold;
|
||||
font-size: 26rpx;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
}
|
||||
.info-line{
|
||||
@@ -596,4 +629,16 @@ view{box-sizing: border-box;display: block;}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.view-more-btn{
|
||||
padding: 10rpx 56rpx;
|
||||
background: #FFFFFF;
|
||||
color: #4C6EFB;
|
||||
border: 1rpx solid #4C6EFB;
|
||||
text-align: center;
|
||||
border-radius: 40rpx;
|
||||
width: fit-content;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
</style>
|
||||
@@ -1,59 +1,28 @@
|
||||
<template>
|
||||
<view class="job-list">
|
||||
<view class="top_box_bg">
|
||||
<u-image src="@/packageRc/static/images/top.png" width="750rpx" height="496rpx" />
|
||||
</view>
|
||||
<view class="job-list__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">
|
||||
<!-- 注释掉store相关引用,避免getters错误 -->
|
||||
<!--
|
||||
<uni-icons
|
||||
v-show="false"
|
||||
@tap=""
|
||||
name="list"
|
||||
size="44rpx"
|
||||
color="#fff"
|
||||
></uni-icons>
|
||||
-->
|
||||
</view>
|
||||
</div>
|
||||
</view>
|
||||
<view class="job-list" style="background-image: url('../../../packageRc/static/pageBg.png');">
|
||||
<view class="job-list__content">
|
||||
<img
|
||||
<image
|
||||
class="top_box_bg_service"
|
||||
src=""
|
||||
width="360rpx"
|
||||
height="50rpx"
|
||||
src="/packageRc/static/images/serviceFrequency.png"
|
||||
style="width:calc(100vw - 64rpx);height:80rpx;display: block;"
|
||||
alt=""
|
||||
/>
|
||||
<view class="serviceFrequency" @tap="
|
||||
$tab.navigateTo(
|
||||
`/pages/community/serviceRecord?userId=${form.userId}`
|
||||
uni.navigateTo(
|
||||
{url:`/packageRc/pages/daiban/bangfuList?userId=${form.userId}`}
|
||||
)
|
||||
">
|
||||
<view>服务次数 {{ serviceTotal }}</view>
|
||||
<view
|
||||
|
||||
style="font-size: 28rpx; font-weight: normal"
|
||||
>查看></view
|
||||
>{{'查看>'}}</view
|
||||
>
|
||||
</view>
|
||||
<view class="content">
|
||||
<view
|
||||
class="personnelInformation"
|
||||
@tap="
|
||||
$tab.navigateTo(
|
||||
`/pages/community/personEdit?id=${form.id}&type=edit`
|
||||
)
|
||||
"
|
||||
>
|
||||
<view class="personnelInformation">
|
||||
<view class="left">
|
||||
<view class="left_name">{{ form?.name || '' }}</view>
|
||||
<view class="left_name">{{ form.name || '' }}</view>
|
||||
<view style="margin-top: 10rpx">
|
||||
<text v-if="form.gender == 0">男</text>
|
||||
<text v-if="form.gender == 1">女</text>
|
||||
@@ -81,10 +50,9 @@
|
||||
</view>
|
||||
<view class="visitAndInvestigate" @click="goAddServices">
|
||||
<view class="text">服务</view>
|
||||
<img
|
||||
<image
|
||||
src="/packageRc/static/images/person/fillInRecords.png"
|
||||
width="60rpx"
|
||||
height="40rpx"
|
||||
style="width:220rpx;height:60rpx;"
|
||||
alt=""
|
||||
srcset=""
|
||||
/>
|
||||
@@ -128,66 +96,68 @@
|
||||
>条求职需求</text
|
||||
>
|
||||
</view> -->
|
||||
<u-swipe-action v-show="activeType == 1">
|
||||
<u-swipe-action-item
|
||||
:options="[{ text: '删除' }]"
|
||||
<uni-swipe-action v-show="activeType == 1">
|
||||
<uni-swipe-action-item
|
||||
:right-options="[{ text: '删除' }]"
|
||||
class="jobSearchListview"
|
||||
v-for="item in jobSearchList"
|
||||
:key="item.id"
|
||||
@click="removeRowData(item)"
|
||||
>
|
||||
<view style="padding: 30rpx;" @click="goNeedsDetail(item, 1)">
|
||||
<view class="jobSearchListview_name">{{
|
||||
getJobWorkTypeName(item.jobWorkType)
|
||||
}}</view>
|
||||
<view class="salaryExpectation">
|
||||
<text style="color: #8e8e8e">期望薪资:</text>
|
||||
<view class="salary">
|
||||
{{ item.minRecruitmentSalary}}-
|
||||
{{ item.highRecruitmentSalary}}
|
||||
/月
|
||||
<view>
|
||||
<view style="border-radius: 8rpx;margin-top: 16rpx;background: #fff;padding: 30rpx;" @click="goNeedsDetail(item, 1)">
|
||||
<view class="jobSearchListview_name">{{
|
||||
getJobWorkTypeName(item.jobWorkType)
|
||||
}}</view>
|
||||
<view class="salaryExpectation">
|
||||
<text style="color: #8e8e8e">期望薪资:</text>
|
||||
<view class="salary">
|
||||
{{ item.minRecruitmentSalary}}-
|
||||
{{ item.highRecruitmentSalary}}
|
||||
/月
|
||||
</view>
|
||||
</view>
|
||||
<view class="salaryExpectation">
|
||||
<text style="color: #8e8e8e">希望工作地点:</text>
|
||||
<text>{{ item.addressDesc }}</text>
|
||||
</view>
|
||||
<view class="jobSearchListview_currentStatus">
|
||||
<text style="color: #e0a61f" v-if="item.currentStatus == 1"
|
||||
>待处理</text
|
||||
>
|
||||
<text style="color: #288ae6" v-if="item.currentStatus == 2"
|
||||
>处理中</text
|
||||
>
|
||||
<text style="color: #1ac88b" v-if="item.currentStatus == 3"
|
||||
>已完成</text
|
||||
>
|
||||
</view>
|
||||
<view v-if="item.currentStatus == 3" class="job-list__item-btn">
|
||||
<u-button
|
||||
type="primary"
|
||||
:plain="true"
|
||||
color="#1A62CE"
|
||||
text="服务追溯"
|
||||
@click.native.stop="serviceTraceButton(item, 1)"
|
||||
:customStyle="{ border: 'none' }"
|
||||
></u-button>
|
||||
</view>
|
||||
<view class="job-list__item-btn" v-else>
|
||||
<view
|
||||
class="btn"
|
||||
@click.native.stop="requirementTraining(item, 1)"
|
||||
>推荐</view
|
||||
>
|
||||
<view
|
||||
class="btn"
|
||||
@click.native.stop="requirementHandling(item, 1)"
|
||||
>办结</view
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
<view class="salaryExpectation">
|
||||
<text style="color: #8e8e8e">希望工作地点:</text>
|
||||
<text>{{ item.addressDesc }}</text>
|
||||
</view>
|
||||
<view class="jobSearchListview_currentStatus">
|
||||
<text style="color: #e0a61f" v-if="item.currentStatus == 1"
|
||||
>待处理</text
|
||||
>
|
||||
<text style="color: #288ae6" v-if="item.currentStatus == 2"
|
||||
>处理中</text
|
||||
>
|
||||
<text style="color: #1ac88b" v-if="item.currentStatus == 3"
|
||||
>已完成</text
|
||||
>
|
||||
</view>
|
||||
<view v-if="item.currentStatus == 3" class="job-list__item-btn">
|
||||
<u-button
|
||||
type="primary"
|
||||
:plain="true"
|
||||
color="#1A62CE"
|
||||
text="服务追溯"
|
||||
@click.native.stop="serviceTraceButton(item, 1)"
|
||||
:customStyle="{ border: 'none' }"
|
||||
></u-button>
|
||||
</view>
|
||||
<view class="job-list__item-btn" v-else>
|
||||
<view
|
||||
class="btn"
|
||||
@click.native.stop="requirementTraining(item, 1)"
|
||||
>推荐</view
|
||||
>
|
||||
<view
|
||||
class="btn"
|
||||
@click.native.stop="requirementHandling(item, 1)"
|
||||
>办结</view
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
</u-swipe-action-item>
|
||||
</u-swipe-action>
|
||||
</uni-swipe-action-item>
|
||||
</uni-swipe-action>
|
||||
<!-- <view class="requirementTitle">
|
||||
<text>创业需求</text>
|
||||
<text class="text"
|
||||
@@ -197,15 +167,15 @@
|
||||
>条求职需求</text
|
||||
>
|
||||
</view> -->
|
||||
<u-swipe-action v-show="activeType == 2">
|
||||
<u-swipe-action-item
|
||||
:options="[{ text: '删除' }]"
|
||||
<uni-swipe-action v-show="activeType == 2">
|
||||
<uni-swipe-action-item
|
||||
:right-options="[{ text: '删除' }]"
|
||||
@click="removeRowData(item)"
|
||||
class="entrepreneurialNeeds"
|
||||
v-for="item in listOfEntrepreneurialNeeds"
|
||||
:key="item.id"
|
||||
>
|
||||
<view style="padding: 30rpx" @click="goNeedsDetail(item, 3)">
|
||||
<view style="border-radius: 8rpx;margin-top: 16rpx;background: #fff;padding: 30rpx" @click="goNeedsDetail(item, 3)">
|
||||
<view class="entrepreneurialNeeds_name">
|
||||
{{ item.personName }}的创业需求
|
||||
</view>
|
||||
@@ -251,8 +221,8 @@
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
</u-swipe-action-item>
|
||||
</u-swipe-action>
|
||||
</uni-swipe-action-item>
|
||||
</uni-swipe-action>
|
||||
<!-- <view class="requirementTitle">
|
||||
<text>培训需求</text>
|
||||
<text class="text"
|
||||
@@ -260,15 +230,15 @@
|
||||
>条求职需求</text
|
||||
>
|
||||
</view> -->
|
||||
<u-swipe-action v-show="activeType == 3">
|
||||
<u-swipe-action-item
|
||||
:options="[{ text: '删除' }]"
|
||||
<uni-swipe-action v-show="activeType == 3">
|
||||
<uni-swipe-action-item
|
||||
:right-options="[{ text: '删除' }]"
|
||||
@click="removeRowData(item)"
|
||||
class="entrepreneurialNeeds"
|
||||
v-for="item in trainingList"
|
||||
:key="item.id"
|
||||
>
|
||||
<view style="padding: 30rpx" @click="goNeedsDetail(item, 4)">
|
||||
<view style="border-radius: 8rpx;margin-top: 16rpx;background: #fff;padding: 30rpx" @click="goNeedsDetail(item, 4)">
|
||||
<view class="entrepreneurialNeeds_name">
|
||||
{{ item.personName }}的培训需求
|
||||
</view>
|
||||
@@ -316,8 +286,8 @@
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
</u-swipe-action-item>
|
||||
</u-swipe-action>
|
||||
</uni-swipe-action-item>
|
||||
</uni-swipe-action>
|
||||
<!-- <view class="requirementTitle">
|
||||
<text>其他需求</text>
|
||||
<text class="text"
|
||||
@@ -325,15 +295,15 @@
|
||||
>条其他需求</text
|
||||
>
|
||||
</view> -->
|
||||
<u-swipe-action v-show="activeType == 4">
|
||||
<u-swipe-action-item
|
||||
<uni-swipe-action v-show="activeType == 4">
|
||||
<uni-swipe-action-item
|
||||
:options="[{ text: '删除' }]"
|
||||
@click="removeRowData(item)"
|
||||
class="entrepreneurialNeeds"
|
||||
v-for="item in otherList"
|
||||
:key="item.id"
|
||||
>
|
||||
<view style="padding: 30rpx" @click="goNeedsDetail(item, 5)">
|
||||
<view style="border-radius: 8rpx;margin-top: 16rpx;background: #fff;padding: 30rpx" @click="goNeedsDetail(item, 5)">
|
||||
<view class="entrepreneurialNeeds_name">
|
||||
{{ item.personName }}的其他需求
|
||||
</view>
|
||||
@@ -378,15 +348,15 @@
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
</u-swipe-action-item>
|
||||
</u-swipe-action>
|
||||
</uni-swipe-action-item>
|
||||
</uni-swipe-action>
|
||||
</view>
|
||||
</view>
|
||||
<view class="addNeeds" @click="goAddNeeds">
|
||||
<img src="/packageRc/static/images/person/addNeeds.png" />
|
||||
</view>
|
||||
|
||||
<u-popup :show="show" @close="close" @open="open">
|
||||
<!-- <uni-popup ref="show" @close="close" @open="open">
|
||||
<view class="dialog_div">
|
||||
<view class="dialog_div_item" @click="goAddNeeds(1)">
|
||||
<img
|
||||
@@ -428,10 +398,10 @@
|
||||
/>
|
||||
其他需求
|
||||
</view>
|
||||
<view class="dialog_div_btn" @click="show = false"> 取 消 </view>
|
||||
<view class="dialog_div_btn" @click="closeShow"> 取 消 </view>
|
||||
</view>
|
||||
</u-popup>
|
||||
<u-datetime-picker
|
||||
</uni-popup> -->
|
||||
<!-- <u-datetime-picker
|
||||
style="position: relative; z-index: 100"
|
||||
:show="showTime"
|
||||
v-model="hopeSolveDate"
|
||||
@@ -440,26 +410,117 @@
|
||||
@confirm="confirmDate"
|
||||
@cancel="showTime = false"
|
||||
@close="showTime = false"
|
||||
></u-datetime-picker>
|
||||
></u-datetime-picker> -->
|
||||
<!-- 社区端 - 显示隐藏退出组件 -->
|
||||
<exitPopup />
|
||||
<DealDone ref="dealDone" @finished="getListPersonDemand();"/>
|
||||
<!-- <uni-popup background-color="#fff" type="bottom"
|
||||
ref="openDeal"
|
||||
style="position: relative; z-index: 100"
|
||||
closeOnClickOverlay
|
||||
@close="openDeal = false"
|
||||
>
|
||||
<view style="padding: 32rpx;">
|
||||
<uni-forms style="width: 100%;"
|
||||
class="self-form"
|
||||
labelPosition="top"
|
||||
:model="formData"
|
||||
:rules="rules"
|
||||
ref="uForm"
|
||||
labelWidth="300"
|
||||
>
|
||||
<uni-forms-item label="实际解决时间" prop="actualSolveDate" required>
|
||||
<view
|
||||
class="picker-view"
|
||||
:class="{ selected: formData.actualSolveDate }"
|
||||
@click="showTime = true"
|
||||
>
|
||||
<uni-datetime-picker
|
||||
type="date"
|
||||
:value="formData.actualSolveDate"
|
||||
start="2021-3-20"
|
||||
end="2030-6-20"
|
||||
@change="change"
|
||||
/>
|
||||
</view>
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="经办人" prop="agentUserName" required>
|
||||
<view class="input-view">
|
||||
<uni-data-select
|
||||
style="width: 100%"
|
||||
v-model="formData.agentUserId"
|
||||
placeholder="请选择经办人"
|
||||
:localdata="jingbrList1"
|
||||
@change="handleAgentChange"
|
||||
>
|
||||
</uni-data-select>
|
||||
</view>
|
||||
</uni-forms-item>
|
||||
|
||||
<uni-forms-item label="人员状态" prop="fileUrl">
|
||||
<picker
|
||||
@change="onpersonStatusChange"
|
||||
:range="personStatusOptions.map(item => item.label)"
|
||||
:value="getpersonStatusIndex(formData.personStatus)"
|
||||
mode="selector"
|
||||
>
|
||||
<view style="border: 1px solid #e4e4e4;width: 100%;padding: 0 20rpx;line-height: 64rpx;white-space: nowrap;text-overflow: ellipsis;flex-grow: 1;">{{ getpersonStatusLabel(formData.personStatus) || "请选择" }}</view>
|
||||
</picker>
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="附件" prop="fileUrl">
|
||||
<ImageUpload
|
||||
:fileList="fileList"
|
||||
@update="changeFile"
|
||||
:maxCount="6"
|
||||
/>
|
||||
</uni-forms-item>
|
||||
|
||||
<uni-forms-item label="解决说明" prop="solveDesc" required>
|
||||
<view class="textarea-view">
|
||||
<textarea
|
||||
v-model="formData.solveDesc"
|
||||
placeholder="请输入解决说明"
|
||||
style="padding: 28rpx 36rpx;border: 1px solid #e4e4e4;padding: 10rpx;border-radius: 8rpx;font-size: 28rpx;color:#333333;height: 120rpx;"
|
||||
></textarea>
|
||||
</view>
|
||||
</uni-forms-item>
|
||||
</uni-forms>
|
||||
</view>
|
||||
<view class="button-area">
|
||||
<view class="btn" @click="closeopenDeal">取消</view>
|
||||
<view
|
||||
class="btn reset"
|
||||
@click="
|
||||
formData.actualSolveDate = '';
|
||||
formData.solveDesc = '';
|
||||
"
|
||||
>重置</view
|
||||
>
|
||||
<view class="btn save" @click="finishJobRecommend()"
|
||||
>办结</view
|
||||
>
|
||||
</view>
|
||||
</uni-popup> -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import { getPersonInfo } from "../../api/company/index.js";
|
||||
// import { listJobService, serviceTraceability } from "@/api/needs/jobService";
|
||||
import { listPersonDemand, delPersonDemand } from "../../api/needs/personDemand";
|
||||
// import { requirementCompletion } from "@/api/company";
|
||||
// import { listEntrepreneurshipService } from "@/api/needs/entrepreneurshipService";
|
||||
// import { listTrainService, delTrainService } from "@/api/needs/trainService";
|
||||
import { listJobType } from "../../api/jobType/index";
|
||||
// import ImageUpload from "@/components/ImageUpload";
|
||||
// import { listJobService, serviceTraceability } from "@/api/needs/jobService";
|
||||
import { listPersonDemand, delPersonDemand } from "../../api/needs/personDemand";
|
||||
import { requirementCompletion } from "@/packageRc/apiRc/company/index";
|
||||
// import { listEntrepreneurshipService } from "@/api/needs/entrepreneurshipService";
|
||||
// import { listTrainService, delTrainService } from "@/api/needs/trainService";
|
||||
import { listJobType } from "../../api/jobType/index";
|
||||
// import ImageUpload from "@/packageRc/components/ImageUpload";
|
||||
import {getJbrInfo} from "@/packageRc/apiRc/personinfo/index"
|
||||
import DealDone from "../needs/dealDone.vue";
|
||||
export default {
|
||||
name: "serviceDetails",
|
||||
components: {
|
||||
//ImageUpload,
|
||||
// ImageUpload,
|
||||
DealDone,
|
||||
},
|
||||
|
||||
data() {
|
||||
@@ -523,14 +584,32 @@ export default {
|
||||
disabled: false,
|
||||
showPersonStatusPicker: false,
|
||||
personStatusLabel: '',
|
||||
jingbrList1: [],
|
||||
personStatusOptions: [],
|
||||
};
|
||||
},
|
||||
onLoad(options) {
|
||||
this.form.id = options.id;
|
||||
this.form.userId = options.name
|
||||
this.form.userId = options.id; // 确保userId被正确赋值
|
||||
this.form.userId = options.userId; // 确保userId被正确赋值
|
||||
console.log("options", options);
|
||||
this.getPersonInfo11();
|
||||
this.$getDict('qcjy_ryzt').then(res => {
|
||||
if (res.data && Array.isArray(res.data)) {
|
||||
this.personStatusOptions = res.data.map(item => ({
|
||||
value: item.dictValue,
|
||||
label: item.dictLabel
|
||||
}));
|
||||
}
|
||||
});
|
||||
getJbrInfo().then(res => {
|
||||
this.jingbrList1=res.map(ele => {
|
||||
return {
|
||||
value: ele.userId,
|
||||
text: ele.nickName
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
},
|
||||
onShow() {
|
||||
@@ -541,42 +620,46 @@ export default {
|
||||
created(){
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
// 注释掉getDicts调用,避免运行时错误
|
||||
/*
|
||||
let arr = [
|
||||
{
|
||||
key: "qcjy_zgzpgz",
|
||||
prop: "highRecruitmentSalary",
|
||||
},
|
||||
{
|
||||
key: "qcjy_zgzpgz",
|
||||
prop: "minRecruitmentSalary",
|
||||
},
|
||||
{
|
||||
key: "qcjy_ryzt",
|
||||
prop: "personStatusList",
|
||||
},
|
||||
];
|
||||
arr.forEach((ele, index) => {
|
||||
this.getDicts(ele.key).then((res) => {
|
||||
this.dict[ele.prop] = res.data;
|
||||
this.$forceUpdate();
|
||||
});
|
||||
});
|
||||
*/
|
||||
// 暂时注释掉workTypeRemoteMethod调用,避免listJobType未定义错误
|
||||
// if (typeof this.workTypeRemoteMethod === 'function') {
|
||||
// this.workTypeRemoteMethod();
|
||||
// }
|
||||
// this.getListPersonDemand();
|
||||
// this.getJobSearchList();
|
||||
// this.getListOfEntrepreneurialNeeds();
|
||||
// this.getTrainingList();
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 获取帮扶内容标签
|
||||
getpersonStatusLabel(value) {
|
||||
let arr = this.personStatusOptions.filter(item => item.value == value)
|
||||
return arr.length ? arr[0].label : ''
|
||||
},
|
||||
getpersonStatusIndex(value) {
|
||||
if (!value) return 0;
|
||||
const index = this.personStatusOptions.findIndex(item => item.value === value);
|
||||
return index !== -1 ? index : 0;
|
||||
},
|
||||
// 处理人员状态选择变化
|
||||
onpersonStatusChange(e) {
|
||||
const index = e.detail.value;
|
||||
if (this.personStatusOptions && this.personStatusOptions[index]) {
|
||||
this.formData.personStatus = this.personStatusOptions[index].value;
|
||||
}
|
||||
},
|
||||
// 获取经办人名称
|
||||
getAgentUserName(userId) {
|
||||
const agent = this.jingbrList1.find(item => item.value === userId);
|
||||
return agent ? agent.nickName : '';
|
||||
},
|
||||
// 处理经办人选择变化
|
||||
handleAgentChange(value) {
|
||||
if (!value || !this.jingbrList1 || !this.jingbrList1.length) {
|
||||
this.formData.agentUserName = '';
|
||||
return;
|
||||
}
|
||||
const user = this.jingbrList1.find(item => item.value === value);
|
||||
if (user) {
|
||||
this.formData.agentUserName = user.nickName;
|
||||
} else {
|
||||
this.formData.agentUserName = '';
|
||||
}
|
||||
},
|
||||
closeopenDeal() {
|
||||
this.$refs.openDeal.close();
|
||||
},
|
||||
// 返回上一页
|
||||
goBack() {
|
||||
uni.navigateBack();
|
||||
@@ -622,8 +705,8 @@ export default {
|
||||
open() {
|
||||
// console.log('open');
|
||||
},
|
||||
close() {
|
||||
this.show = false;
|
||||
closeShow() {
|
||||
this.$refs.show.close();
|
||||
// console.log('close');
|
||||
},
|
||||
|
||||
@@ -636,20 +719,11 @@ export default {
|
||||
try {
|
||||
|
||||
const url = `/packageRc/pages/daiban/addbangfu?id=${this.form?.userId || ''}&name=${this.form.name}`;
|
||||
// const url = `/packageRc/pages/service/serviceDetail?id=${this.form?.userId || ''}&name=${this.form.name}`;
|
||||
console.log("导航URL:", url);
|
||||
|
||||
uni.navigateTo({
|
||||
url: url,
|
||||
success: () => {
|
||||
console.log("导航成功");
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error("导航失败:", err);
|
||||
uni.showToast({
|
||||
title: '导航失败: ' + JSON.stringify(err),
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("执行出错:", error);
|
||||
@@ -659,19 +733,12 @@ export default {
|
||||
});
|
||||
}
|
||||
},
|
||||
goRecommend() {
|
||||
this.$tab.navigateTo(
|
||||
`/pages/services/serviceDetail?activeType=2&showTab=1&userId=${this.form.userId}&name=${this.form.name}`
|
||||
);
|
||||
},
|
||||
goPush() {
|
||||
this.$tab.navigateTo(
|
||||
`/pages/services/serviceDetail?activeType=3&showTab=1&userId=${this.form.userId}&name=${this.form.name}`
|
||||
);
|
||||
},
|
||||
goNeedsDetail(item, needsType) {
|
||||
// uni.navigateTo({
|
||||
// url: `/packageRc/pages/demand/demandail?id=${item.id}&type=${needsType}&showTab=1`,
|
||||
// });
|
||||
uni.navigateTo({
|
||||
url: `/pages/needs/needDetail?id=${item.id}&type=${needsType}&showTab=1`,
|
||||
url: `/packageRc/pages/needs/needDetail?id=${item.id}&type=${needsType}&showTab=1`,
|
||||
});
|
||||
},
|
||||
calculateAge(data) {
|
||||
@@ -698,14 +765,17 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
confirmDate(e) {
|
||||
this.showTime = false;
|
||||
// 获取选中的日期
|
||||
const date = e.value;
|
||||
// 使用 uView 的 uTime 方法格式化日期,包含时分秒
|
||||
const formattedDateTime = uni.$u.timeFormat(date, "yyyy-mm-dd hh:MM:ss");
|
||||
// 设置表单数据
|
||||
this.formData.actualSolveDate = formattedDateTime;
|
||||
// confirmDate(e) {
|
||||
// this.showTime = false;
|
||||
// // 获取选中的日期
|
||||
// const date = e.value;
|
||||
// // 使用 uView 的 uTime 方法格式化日期,包含时分秒
|
||||
// const formattedDateTime = uni.$u.timeFormat(date, "yyyy-mm-dd hh:MM:ss");
|
||||
// // 设置表单数据
|
||||
// this.formData.actualSolveDate = formattedDateTime;
|
||||
// },
|
||||
change(e) {
|
||||
this.formData.actualSolveDate = e
|
||||
},
|
||||
removeRowData(data) {
|
||||
//确实要删除的提示
|
||||
@@ -713,40 +783,38 @@ export default {
|
||||
title: "提示",
|
||||
content: "你确定要删除吗",
|
||||
success: (res) => {
|
||||
delPersonDemand(data.id).then((res) => {
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: "删除成功",
|
||||
icon: "none",
|
||||
});
|
||||
//刷新列表
|
||||
this.getListPersonDemand();
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: "删除失败",
|
||||
icon: "none",
|
||||
});
|
||||
}
|
||||
});
|
||||
if(res.confirm){
|
||||
delPersonDemand(data.id).then((res) => {
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: "删除成功",
|
||||
icon: "none",
|
||||
});
|
||||
//刷新列表
|
||||
this.getListPersonDemand();
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: "删除失败",
|
||||
icon: "none",
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
},
|
||||
goAddNeeds(needsType) {
|
||||
console.log("this.form.userId",this.form);
|
||||
|
||||
uni.navigateTo({
|
||||
|
||||
url: `/packageRc/pages/demand/demandail?activeType=${1}&id=${this.form.userId}&name=${this.form.name}`,
|
||||
success: function() {
|
||||
console.log('导航成功')
|
||||
|
||||
},
|
||||
fail: function(err) {
|
||||
console.error('导航失败:', err);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
goAddNeeds() {
|
||||
uni.navigateTo({
|
||||
url: `/packageRc/pages/needs/needDetail?userId=${this.form.userId}&type=1&name=${this.form.name}`,
|
||||
// url: `/packageRc/pages/demand/demandail?activeType=${1}&id=${this.form.userId}&name=${this.form.name}`,
|
||||
success: function() {
|
||||
console.log('导航成功')
|
||||
|
||||
},
|
||||
fail: function(err) {
|
||||
console.error('导航失败:', err);
|
||||
}
|
||||
});
|
||||
},
|
||||
getDictLabel(value, list) {
|
||||
if (list) {
|
||||
@@ -771,18 +839,18 @@ export default {
|
||||
// 获取当前的需求类型字符串
|
||||
const demandType = demandTypeMap[needsType] || "other";
|
||||
// 使用映射后的字符串构建URL并导航
|
||||
this.$tab.navigateTo(
|
||||
`/pages/services/serviceTraceability?id=${item.id}&demandType=${demandType}`
|
||||
);
|
||||
uni.navigateTo({
|
||||
url: `/pages/services/serviceTraceability?id=${item.id}&demandType=${demandType}`
|
||||
});
|
||||
},
|
||||
// 办结按钮
|
||||
async finishJobRecommend(needsType) {
|
||||
async finishJobRecommend() {
|
||||
uni.showLoading();
|
||||
try {
|
||||
// 先进行表单校验
|
||||
await this.$refs.uForm.validate();
|
||||
|
||||
// 校验通过后再走后续逻辑
|
||||
this.$showLoading();
|
||||
const url = "/manage/personDemand/demandDone";
|
||||
if (!url) {
|
||||
throw new Error("无效的需求类型");
|
||||
@@ -790,8 +858,8 @@ export default {
|
||||
const { code, msg } = await requirementCompletion(url, this.formData);
|
||||
|
||||
if (code === 200) {
|
||||
this.$u.toast('办结成功');
|
||||
this.openDeal = false;
|
||||
uni.showToast({title: '办结成功', icon: 'none'});
|
||||
this.$refs.openDeal.close();
|
||||
this.getListPersonDemand();
|
||||
this.serviceTraceability();
|
||||
}
|
||||
@@ -806,21 +874,21 @@ export default {
|
||||
} else {
|
||||
msg = '请检查必填项填写';
|
||||
}
|
||||
this.$u.toast(msg);
|
||||
uni.showToast({title: msg, icon: 'none'});
|
||||
} finally {
|
||||
this.$hideLoading();
|
||||
uni.hideLoading();
|
||||
}
|
||||
},
|
||||
// 需求推荐/培训
|
||||
requirementTraining(item, index) {
|
||||
if (index == 1) {
|
||||
this.$tab.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 {
|
||||
this.$tab.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`
|
||||
});
|
||||
}
|
||||
},
|
||||
changeFile(e) {
|
||||
@@ -834,23 +902,30 @@ export default {
|
||||
this.formData.fileUrl.push(url);
|
||||
}
|
||||
}
|
||||
this.formData.fileUrl = this.$arrayToString(this.formData.fileUrl);
|
||||
this.formData.fileUrl = this.formData.fileUrl.join(',')
|
||||
},
|
||||
// 需求办结
|
||||
requirementHandling(item, needsType) {
|
||||
this.openDeal = true;
|
||||
this.needsType = needsType;
|
||||
this.formData = {
|
||||
id: item.id,
|
||||
currentStatus: "3",
|
||||
userId: item.userId,
|
||||
personStatus: item.personStatus || (this.dict.personStatusList[0] && this.dict.personStatusList[0].dictValue),
|
||||
};
|
||||
console.log("item",item)
|
||||
this.$nextTick(() => {
|
||||
this.$forceUpdate();
|
||||
});
|
||||
},
|
||||
// this.openDeal = true;
|
||||
// this.$refs.openDeal.open();
|
||||
this.$refs.dealDone.init({
|
||||
id: item.id,
|
||||
currentStatus: "3",
|
||||
userId: item.userId,
|
||||
personStatus: item.personStatus || (this.dict.personStatusList[0] && this.dict.personStatusList[0].dictValue),
|
||||
});
|
||||
// this.needsType = needsType;
|
||||
// this.formData = {
|
||||
// id: item.id,
|
||||
// currentStatus: "3",
|
||||
// userId: item.userId,
|
||||
// personStatus: item.personStatus || (this.dict.personStatusList[0] && this.dict.personStatusList[0].dictValue),
|
||||
// };
|
||||
console.log("item",item)
|
||||
this.$nextTick(() => {
|
||||
this.$forceUpdate();
|
||||
});
|
||||
},
|
||||
onPersonStatusConfirm(e) {
|
||||
const item = e.value[0];
|
||||
this.formData.personStatus = item.dictValue;
|
||||
@@ -1013,15 +1088,15 @@ export default {
|
||||
}
|
||||
|
||||
.job-list {
|
||||
&__navbar {
|
||||
height: 80rpx;
|
||||
}
|
||||
height: 100%;;
|
||||
background-repeat: no-repeat;
|
||||
background-color: #F4F4F4;
|
||||
|
||||
&__content {
|
||||
position: relative;
|
||||
padding: 32rpx;
|
||||
z-index: 10;
|
||||
background-color: #d0dcee;
|
||||
background-color: #F4F4F4;
|
||||
border-radius: 32rpx 32rpx 0 0;
|
||||
border: 1px solid #fff;
|
||||
}
|
||||
@@ -1108,18 +1183,17 @@ export default {
|
||||
position: relative;
|
||||
padding: 1rpx;
|
||||
.content {
|
||||
padding: 17px;
|
||||
margin-top: 110rpx;
|
||||
height: calc(100vh - 264rpx);
|
||||
padding: 0 32rpx;
|
||||
margin-top: 100rpx;
|
||||
height: calc(100vh - 64rpx);
|
||||
overflow: auto;
|
||||
z-index: 10;
|
||||
background-color: #d0dcee;
|
||||
border-radius: 17px 17px 0 0;
|
||||
border: 3px solid #fff !important;
|
||||
// background-color: #d0dcee;
|
||||
// border-radius: 17px 17px 0 0;
|
||||
// border: 3px solid #fff !important;
|
||||
}
|
||||
}
|
||||
.top_box_bg_service {
|
||||
display:none;
|
||||
position: absolute;
|
||||
top: 20rpx;
|
||||
left: 40rpx;
|
||||
@@ -1212,6 +1286,7 @@ export default {
|
||||
width: 100%;
|
||||
height: 205rpx;
|
||||
border-radius: 8px;
|
||||
border-top-right-radius: 0;
|
||||
background: #ffffff;
|
||||
padding: 30rpx;
|
||||
box-sizing: border-box;
|
||||
|
||||
Reference in New Issue
Block a user