hldy_xcx/pages/oldmanindex/searchjigou.vue

493 lines
11 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="container">
<view class="title-back">
<view class="left-father" @click="goBack">
<image class="back-img" src="https://www.focusnu.com/media/directive/index/left.png" />
<view style="font-size: 30rpx;">入驻机构</view>
</view>
</view>
<view class="zhiling-box" style="margin-top: 30rpx;height: 120rpx;justify-content: flex-start;">
<view class="input-all">
<image
style="position: absolute;left: 20rpx;top: 50%;transform: translateY(-50%);width: 40rpx;height: 40rpx;"
src="https://www.focusnu.com/media/directive/index/search.png" />
<input style="font-size: 31rpx;" type="text" v-model="supervalue" placeholder="请输入入驻护理机构名称"
@confirm="search" @input="detectinput" />
<view @click="clearvalue" v-if="supervalue"
style="position: absolute;right: 20rpx;top: 50%;transform: translateY(-50%);width: 40rpx;height: 40rpx;display: flex;justify-content: center;align-items: center;border-radius: 50%;background-color: #EBEBEB;">
<image style="width: 20rpx;height: 20rpx;"
src="https://www.focusnu.com/media/directive/index/cha.png" />
</view>
</view>
<view class="tianjia" @click="search">
检索
</view>
</view>
<view style="width: 100%;display: flex;flex-wrap: wrap;">
<view v-for="(item,index) in hulijigouArray" :key="index" class="zhiling-box-card"
:style="hulitarget===index?{border:`4rpx solid #0093FF`}:{}"
style="margin-top: 30rpx;height: 300rpx;position: relative;width: 92%;flex-direction: column;"
@click="clickCard(index)">
<!-- <view style="position: absolute;right: 0rpx;bottom: -14rpx;" v-if="hulitarget===index">
<image style="width: 60rpx;height: 60rpx;"
src="https://www.focusnu.com/media/directive/index/lemon.png" />
</view> -->
<view class="card-font">
{{item.departName}}
</view>
<view class="gray-font">
<image style="margin-left: 10rpx;height: 25rpx;width: 25rpx;margin-right: 10rpx;"
src="https://www.focusnu.com/media/directive/index/ruzhu/man.png" />
{{ item.comLegalPerson }} |
<image style="margin-left: 10rpx;height: 25rpx;width: 25rpx;margin-right: 10rpx;"
src="https://www.focusnu.com/media/directive/index/ruzhu/phone.png" />
{{ item.tel }}
</view>
<view class="applying" v-if="item.employeesApiEntity?.status===`1`">
{{ item.employeesApiEntity.isInvited=='1' ? "申请中" : "待确认" }}
</view>
<view class="applysuccess" v-if="item.employeesApiEntity?.status===`2`">
{{ item.employeesApiEntity.isInvited=='1' ? "申请通过" : "已接受" }}
</view>
<view class="applyfail" v-if="item.employeesApiEntity?.status===`3`">
{{ item.employeesApiEntity.isInvited=='1' ? "申请驳回" : "已拒绝" }}
</view>
<!-- <view style="height: 50rpx;" v-if="!item.employeesApiEntity">
</view> -->
<view class="gray-bgc">
<image class="gray-img" src="https://www.focusnu.com/media/directive/index/ditu/bgc.png" />
<view style="color: #999999;z-index: 1;font-size: 27rpx;width: 100%;display: flex;">
<image
style="margin-left: 10rpx;height: 30rpx;width: 25rpx;margin-right: 10rpx;z-index: 1;margin-top: 8rpx"
src="https://www.focusnu.com/media/directive/index/ditu/mark.png" />
<view style="width: 630rpx;">
{{item.comRegisterAddress}}
</view>
</view>
</view>
</view>
</view>
<!-- 处理margin重叠 -->
<view style="height: 200rpx;">
</view>
<view class="button-father">
<view class="blue-button" @click="apply" v-if="buttonOpen">
申请
</view>
<view class="white-button" v-else>
申请
</view>
</view>
<u-popup v-model="popupshow" mode="bottom" border-radius="40">
<view class="popop-father">
<image style="width: 100rpx;height: 100rpx;"
src="https://www.focusnu.com/media/directive/index/tishi.png" />
<view class="popop-font">
入驻申请已提交,请到
<text style="color: #01A9FF;">
"我的-入驻审核"
</text>
查看审核进度
</view>
<view class="popop-blue" @click="jumpRuzhu()">
查看
</view>
</view>
</u-popup>
</view>
</template>
<script setup lang="ts">
import {
reactive,
ref,
onMounted,
onUnmounted,
} from 'vue';
import {
onShow
} from '@dcloudio/uni-app'
import { getOrgInfo, Apply } from './api.js'
onShow(
() =>
search()
)
const hulijigouArray = ref([])
const hulitarget = ref(-1)
const popupshow = ref(false);
const supervalue = ref("");
const jumpRuzhu = () => {
popupshow.value = false
uni.navigateTo({
url: "/pages/yuangongindex/workjoin"
})
}
let inputTimer = null
const detectinput = () => {
// clear + set会在最后一次输入后 600ms 执行
if (inputTimer) clearTimeout(inputTimer)
inputTimer = setTimeout(() => {
inputTimer = null
// 这里是真正触发的逻辑
search()
}, 600) // 600ms = 0.6s
}
onUnmounted(() => {
if (inputTimer) clearTimeout(inputTimer)
})
const buttonOpen = ref(false);
const clickCard = (index : number) => {
if (hulitarget.value === index) {
hulitarget.value = -1;
buttonOpen.value = false;
} else {
hulitarget.value = index;
if (hulijigouArray.value[index].employeesApiEntity?.status == 1 || hulijigouArray.value[index].employeesApiEntity?.status == 2) {
buttonOpen.value = false;
} else {
buttonOpen.value = true;
}
}
}
const clearvalue = () => {
hulitarget.value = -1;
supervalue.value = "";
search()
}
const goBack = () => {
uni.navigateBack()
}
const search = () => {
buttonOpen.value = false;
hulitarget.value = -1;
getOrgInfo(supervalue.value).then((res : any) => {
if (res.success) {
hulijigouArray.value = res.result.records
}
})
}
const sumbit = ref(false);
const apply = () => {
if (sumbit.value) {
return
}
sumbit.value = true;
// 先拿出来
let data = uni.getStorageSync('staff')
// 如果是字符串需要先 parse
// let data = typeof storageData === 'string' ? JSON.parse(storageData) : { ...storageData }
// 避免污染原对象,拷贝一份
data = {
...data,
dateOfBirth: data.birthDate,
marriedOrNot: data.maritalStatus,
address: data.address,
emergencyContact: data.contactName,
emergencyTel: data.contactTel,
emergencyRelationship: data.contactRelationship,
hukouNature: data.hukouType,
idCardPositive: data.cardZmPath,
idCardNegative: data.cardFmPath,
healthCertificatePositive: data.healthZmPath,
healthCertificateNegative: data.healthFmPath,
bankPositive: data.bankZmPath,
bankNegative: data.bankFmPath,
qualification: data.qualificationPath,
noCrimeCertificate: data.noCrimeCertificate,
houseAddress: data.idCardAddress,
employeeId: data.id,
id: null,
createTime: null,
updateBy: null,
updateTime: null,
orgCode: hulijigouArray.value[hulitarget.value].orgCode
}
Apply(data).then((data : any) => {
if (data.success) {
popupshow.value = true
setTimeout(() => search(), 1000)
}
setTimeout(() => sumbit.value = false, 1000)
})
}
// search()
</script>
<style lang="scss" scoped>
.container {
display: flex;
flex-direction: column;
min-height: 100vh;
width: 100%;
background-color: #F7F7F7;
position: relative;
}
.title-back {
margin-top: 100rpx;
width: 100%;
height: 100rpx;
display: flex;
justify-content: space-between;
align-items: center;
}
.left-father {
display: flex;
align-items: center;
.back-img {
width: 45rpx;
height: 40rpx;
margin-left: 40rpx;
margin-right: 15rpx;
}
}
.tianjia {
width: 120rpx;
height: 70rpx;
background: linear-gradient(to right, #00C9FF, #0076FF);
color: #fff;
display: flex;
justify-content: center;
align-items: center;
border-radius: 30rpx;
margin-left: 10rpx;
}
.zhiling-box {
display: flex;
justify-content: space-around;
align-items: center;
width: 92%;
margin-left: 4%;
height: 110rpx;
background-color: #fff;
border-radius: 35rpx;
font-size: 32rpx;
border: 4rpx solid #fff;
}
.input-all {
width: 500rpx;
height: 65rpx;
border-radius: 30rpx;
background-color: #F7F7F7;
padding-left: 80rpx;
margin-left: 30rpx;
display: flex;
align-items: center;
position: relative;
}
.popop-father {
width: 100%;
height: 600rpx;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.popop-font {
margin-top: 40rpx;
width: 70%;
text-align: center;
line-height: 40rpx;
font-size: 30rpx;
margin-bottom: 100rpx;
}
.popop-blue {
display: flex;
justify-content: center;
align-items: center;
width: 80%;
display: flex;
justify-content: center;
align-items: center;
height: 90rpx;
border-radius: 35rpx;
background: linear-gradient(to left, #00C9FF, #0076FF);
color: #fff;
font-size: 33rpx;
margin-bottom: 30rpx;
}
.button-father {
position: fixed;
bottom: 0rpx;
left: 0;
width: 100%;
display: flex;
justify-content: center;
background-color: #fff;
}
.blue-button {
display: flex;
justify-content: center;
align-items: center;
width: 80%;
height: 90rpx;
margin: 0rpx auto;
margin-bottom: 80rpx;
margin-top: 20rpx;
color: #fff;
background: linear-gradient(to left, #00C9FF, #0076FF);
border-radius: 35rpx;
font-size: 33rpx;
}
.white-button {
display: flex;
justify-content: center;
align-items: center;
width: 80%;
height: 90rpx;
margin: 0rpx auto;
margin-bottom: 80rpx;
margin-top: 20rpx;
// color: #fff;
background: linear-gradient(to bottom, #f3f3f5, #dee4e9);
border-radius: 35rpx;
font-size: 33rpx;
}
.zhiling-box-card {
display: flex;
width: 92%;
margin-left: 4%;
height: 150rpx;
background-color: #fff;
border-radius: 35rpx;
font-size: 32rpx;
border: 4rpx solid #fff;
overflow: hidden;
}
.applying {
position: absolute;
right: 20rpx;
top: 0rpx;
background-color: #FFE8D3;
color: #FF7900;
width: 130rpx;
height: 50rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 28rpx;
border-radius: 10rpx;
margin-left: 35rpx;
margin-top: 25rpx;
// margin-top: 20rpx;
// margin-bottom: 20rpx;
}
.applysuccess {
position: absolute;
right: 20rpx;
top: 0rpx;
background-color: #DEF1FF;
color: #0093FF;
width: 130rpx;
height: 50rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 28rpx;
border-radius: 10rpx;
margin-left: 35rpx;
margin-top: 25rpx;
// margin-bottom: 20rpx;
}
.applyfail {
position: absolute;
right: 20rpx;
top: 0rpx;
background-color: #fff4f7;
color: #FC3D7F;
width: 130rpx;
height: 50rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 28rpx;
border-radius: 10rpx;
margin-left: 35rpx;
margin-top: 20rpx;
// margin-bottom: 20rpx;
}
.card-font {
margin-left: 40rpx;
font-size: 32rpx;
margin-top: 30rpx;
word-wrap: break-word;
width: 450rpx;
font-weight: 600;
}
.gray-font {
margin-left: 40rpx;
font-size: 31rpx;
margin-top: 30rpx;
color: #B1B1B1;
width: 100%;
}
.gray-bgc {
margin: 20rpx 40rpx;
width: 90%;
height: 90rpx;
border-radius: 10rpx;
display: flex;
align-items: center;
position: relative;
line-height: 40rpx;
.gray-img {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
}
</style>